.NET SQL Server DataAdapter返回错误的字段类型?

时间:2011-08-02 17:58:21

标签: c# sql-server datatable dataadapter

我正在使用针对.Net 2.0框架的Visual Studio 2010,连接到SQL Server 2008.在表中有一个名为Box_no的{​​{1}}字段。该字段的内容主要是数字,有些是空的。 Nulls允许,但没有。

这是查询此表并在网格中显示的代码(省略了else):

varchar(50)

非常直截了当。麻烦是根据ID的值(即搜索从哪里开始),字段DataTable dtRaw = new DataTable(); SqlDataAdapter sdaRaw; if (rbRestrictCount.Checked) { sdaRaw = new SqlDataAdapter("Select top 50 * from MyTable where ID >= \'" + numericUpDown1.Value + "\' Order By ID", Properties.Settings.Default.ConnStr); }; sdaRaw.Fill(dtRaw); dataGridView1.DataSource = dtRaw; 有时以科学记数法显示 - 2.4e + ....等 - 其他时间显示为文本。它在表中明确定义为box_no,但似乎数据适配器在创建DataTable结构时试图推断出不同的字段类型。是否有人告诉它不要这样做?

2 个答案:

答案 0 :(得分:1)

在将其分配给数据源之前尝试此操作

dtRaw.Columns["box_no"].DataType = typeof(string);

答案 1 :(得分:0)

很抱歉,但是发现了问题 - 科学记数法实际上是在数据本身 - 它是从XLS电子表格导入的,这似乎导致700K记录中的69K。感谢