您的位置:首页 > 数据库

查询数据库后,datatable的字段类型问题

2011-12-27 20:53 295 查看
 今天将从数据库中查询得到的datable赋给datagridview做datasource后,发现其中值类型的字段无法修改相关属性,比如保留小数位数等,后来发现这些值类型统统变成了string类型了。

仔细检查后,发现是查询数据库的时候,没有设置datatable的字段与数据库表中的字段类型一致。如果要保持数据类型不表,必须要设置datatable的字段类型与数据库表的字段类型一致。

程序如下:

public DataTable GetDataTable(string strCommandText)
{
this.oleDbCommand.CommandText = strCommandText;
DataTable dt = new DataTable();
try
{
DataRow dr;
//打开连接
this.oleDbConnection.Open();

//建立读取
OleDbDataReader odrReader = this.oleDbCommand.ExecuteReader();
//查询并显示数据
int size = odrReader.FieldCount;
for (int i = 0; i < size; i++)
{
DataColumn dc;
dc = new DataColumn(odrReader.GetName(i));
dc.DataType = odrReader.GetFieldType(i);//必须指定类型,否则自动转为string
dt.Columns.Add(dc);
}
while (odrReader.Read())
{
dr = dt.NewRow();
for (int i = 0; i < size; i++)
{
dr[odrReader.GetName(i)] = odrReader[odrReader.GetName(i)].ToString();
}
dt.Rows.Add(dr);
}
odrReader.Close();
return dt;
}
catch
{
throw new Exception();
}
finally
{
//关闭连接
this.oleDbConnection.Close();
}

}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据库 string exception
相关文章推荐