データベース テーブルに日時値を挿入しようとしていますが、問題が発生しています。これを実行しようとするたびに、次のメッセージが表示されます。
varchar データ型を datetime データ型に変換すると、範囲外の値になりました。ステートメントは終了されました。
これは私のコードです:
public static void DoQuery(string fileName, string sql)
{
SqlConnection conn = ConnectToDb(fileName);
conn.Open();
SqlCommand com = new SqlCommand(sql, conn);
com.ExecuteNonQuery();
com.Dispose();
conn.Close();
}
private void button1_Click(object sender, EventArgs e)
{
SqlConnection cn = new SqlConnection();
cn.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename='c:\users\***\***\visual studio 2010\Projects\***\***\Database.mdf';Integrated Security=True;User Instance=True";
cn.Open();
string[] dateArr = dateBox.Text.Split('/');
int[] dateInt = new int[3];
for (int i = 0; i < 3; i++)
{
dateInt[i] = Int16.Parse(dateArr[i]);
MessageBox.Show(dateInt[i]+"");
}
DateTime date = new DateTime(dateInt[2],dateInt[1],dateInt[0]);
string sql = "INSERT INTO existProducts(name,date,price,amount) VALUES ('" + nameBox.Text + "','" + date + "','" + priceBox.Text + "','" + amountBox.Text + "')";
MyAdoHelper.DoQuery("Database.mdf", sql);
MessageBox.Show("Success!");
cn.Close();
}
注 1: 例外処理がありましたが、常にこの例外を処理する必要があり、プログラムがうまく実行されなかったため、削除しました。
注 2: 接続文字列を検閲しましたが、接続があり、正常に動作します。