我创建了SQL表编辑器,用于在某些列中添加信息。但是一列设置为“DateTime”,应用程序无法写入。这是代码:
private void button2_Click(object sender, EventArgs e)
{
try
{
string connectionString = @"Data Source=" + textBox4.Text + ";" + "Initial Catalog=" + textBox1.Text + ";" + "User ID=" + textBox2.Text + ";" + "Password=" + textBox3.Text;
using (SqlConnection connection = new SqlConnection(connectionString))
using (SqlCommand command = connection.CreateCommand())
{
command.CommandText = "INSERT INTO user_ban (char_id, status, ban_date, ban_hour, ban_end) VALUES (@char_id, @status, DateTime @ban_date, @ban_hour, @ban_end)";
command.Parameters.AddWithValue("@char_id", "1");
command.Parameters.AddWithValue("@status", "1");
command.Parameters.AddWithValue("@ban_date", "1");
command.Parameters.AddWithValue("@ban_hour", "1");
command.Parameters.AddWithValue("@ban_end", "1");
connection.Open();
command.ExecuteNonQuery();
MessageBox.Show("Char Banned");
}
}
catch (SqlException ex)
{
MessageBox.Show(ex.Message);
}
}
列'ban_date'设置为DateTime。 谢谢!
答案 0 :(得分:4)
"1"
不是约会对象。尝试将日期传递给它
command.Parameters.AddWithValue("@ban_date", DateTime.Today);
从命令字符串
中删除DateTime
command.CommandText = "INSERT INTO user_ban
(char_id, status, ban_date, ban_hour, ban_end)
VALUES
(@char_id, @status, @ban_date, @ban_hour, @ban_end)";
答案 1 :(得分:0)
如果ban_date
列为DateTime
,为什么要将1
插入其中?没有意义。 1
根本不是有效的DateTime
。将其更改为有效的DateTime
值。
其次,您不应在VALUES
部分使用值类型。从
command.CommandText = "INSERT INTO user_ban (char_id, status, ban_date, ban_hour, ban_end)
VALUES (@char_id, @status, DateTime @ban_date, @ban_hour, @ban_end)";
^^^^^^^^^//delete this
到
command.CommandText = "INSERT INTO user_ban (char_id, status, ban_date, ban_hour, ban_end)
VALUES (@char_id, @status, @ban_date, @ban_hour, @ban_end)";