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

本文关键字:字段 类型 错误 返回 SQL Server DataAdapter net | 更新日期: 2023-09-27 18:04:12

我使用的是针对。net 2.0框架的Visual Studio 2010,连接到SQL Server 2008。在表中有一个类型为varchar(50)的名为Box_no的字段。字段的内容大部分是数字,有些是空的。

下面是查询该表并显示在网格中的代码(省略else):

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;

非常直截了当。问题是根据ID的值(即搜索从哪里开始),字段box_no有时以科学记数法显示- 2.4e+....等等——其他时候它显示为文本。它在表中明确定义为varchar,但似乎数据适配器在创建DataTable结构时试图推断不同的字段类型。有什么方法可以让它不要这样做吗?

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

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

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

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