SQL Server 2008に接続している.Net 2.0フレームワークを対象としたVisual Studio 2010を使用しています。varchar(50)
というフィールドがBox_no
という表にあります。フィールドの内容はほとんどが数字で、一部は空です。ヌルは許されていますが、何もありません。プリティstraighforward間違ったフィールド型を返す.NET SQL ServerのDataAdapter?
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のID(すなわち検索が始まる場所)に従っています。フィールドbox_no
は時には科学記法2.4e + ....などで表示されることがあります。それ以外はテキストとして表示されます。テーブルには
varchar
と定義されていますが、データアダプタがDataTable構造を作成するときに異なるフィールドタイプを推測しようとしているようです。これをしないようにと言ってもらえますか?
は自動生成されたdatagridviewの列ですか、手動で追加した列ですか? – agradl
数値フィールドの場合でも、そのようなsql文字列を連結しないでください。あなたのnumericUpDown1値に必要な任意の文字列を埋め込む方法があり、それを使ってデータベースを完全に引き継ぐことができます。 –
また、rbRestrictCountがチェックされていないという例外がスローされるようなサンプルが表示されます。 –