Box_no
.Net 2.0 フレームワークを対象とする Visual Studio 2010 を使用して、SQL Server 2008に接続してvarchar(50)
います。フィールドの内容はほとんどが数値で、一部は空です。Null は許可されていますが、何もありません。
このテーブルをクエリしてグリッドに表示するコードは次のとおりです (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 構造を作成するときに別のフィールド タイプを推測しようとしているようです。これをしないように伝える方法はありますか?