0

我正在使用面向 .Net 2.0 框架的 Visual Studio 2010,连接到 SQL Server 2008。在表中有一个名为Box_notypevarchar(50)的字段。该字段的内容主要是数字,有些是空的。允许空值,但没有空值。

这是查询此表并显示在网格中的代码(省略 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 结构时试图推断不同的字段类型。有没有办法告诉它不要这样做?

4

2 回答 2

1

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

dtRaw.Columns["box_no"].DataType = typeof(string);
于 2011-08-02T18:06:18.573 回答
0

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

于 2011-08-02T21:01:36.837 回答