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

来源:互联网 发布:升级下windows updata 编辑:程序博客网 时间:2024/04/25 22:54

 今天将从数据库中查询得到的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();            }        }


 

原创粉丝点击