我正在使用针对.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结构时试图推断出不同的字段类型。是否有人告诉它不要这样做?
答案 0 :(得分:1)
在将其分配给数据源之前尝试此操作
dtRaw.Columns["box_no"].DataType = typeof(string);
答案 1 :(得分:0)
很抱歉,但是发现了问题 - 科学记数法实际上是在数据本身 - 它是从XLS电子表格导入的,这似乎导致700K记录中的69K。感谢