查询数据库后,datatable的字段类型问题
2011-12-27 20:53
295 查看
今天将从数据库中查询得到的datable赋给datagridview做datasource后,发现其中值类型的字段无法修改相关属性,比如保留小数位数等,后来发现这些值类型统统变成了string类型了。
仔细检查后,发现是查询数据库的时候,没有设置datatable的字段与数据库表中的字段类型一致。如果要保持数据类型不表,必须要设置datatable的字段类型与数据库表的字段类型一致。
程序如下:
仔细检查后,发现是查询数据库的时候,没有设置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(); } }
相关文章推荐
- java 数据库查询Date类型字段 没有了时分秒 全为 00 的解决办法
- DataTable 数据导入MS ACCESS 数据库中 数字类型字段为空的解决办法
- 关于数据库Varchar字段类型长度设计问题
- Java 通过JDBC查询数据库表结构(字段名称,类型,长度等)
- mysql查询某个数据库中某个表的所有字段名、字段类型和注释
- 关于SubSonic3.0插件使用SubSonic.Query.Select查询时,字段类型为tinyint时列丢失问题的Bug修复
- SqlServer 中使用Jtds驱动连接数据库,如果字段类型为ntext,可能查询输出的为Object: net.sourceforge.jtds.jdbc.ClobImpl@66fa192
- Oracle数据库中字段定义为Char类型,Hibernate用该字段进行动态绑定参数查询,获取不到结果的问题
- Java 通过JDBC查询数据库表结构(字段名称,类型,长度等)
- 数据库中的char类型的字段与number,varchar类型字段查询
- 查询各数据库表字段注释、及表对应的字段类型
- oracle 定长字段查询问题 ,ibatis 与pl/sql查询的char类型字段查询不同
- 查询数据库中的表,返回字段相对应的数据类型!
- Access 数据库日期类型字段的查询
- DataTable与json互转,字段类型信息丢失问题初探
- 关于SQL查询的字符串类型字段的排序问题
- FireDac 与数据库连接时字符集及对应的字段类型问题
- 关于用Hibernate执行sql查询,字符字段类型只返回第一个字节的问题
- SQL C# nvarchar类型转换为int类型 多表查询的问题,查询结果到新表,TXT数据读取到控件和数据库,生成在控件中的数据如何存到TXT文件中
- oracle 定长字段查询问题 ,ibatis 与pl/sql查询的char类型字段查询不同