从字符串转换日期和/或时间时转换失败-在数据库中插入datetimepicker.value

问题描述 投票:0回答:1
String insertUser = "Insert into 
Users(FirstName,LastName,EmailAddress,Password,BirthDate,PhoneNumber)" 
+ "values('@first','@last','@ema','@pass','@bid','@num');";
 SqlCommand addUser = new SqlCommand(insertUser,scn);
addUser.Parameters.Clear();
addUser.Parameters.AddWithValue("@first", FirstNameTextbox.Text);
addUser.Parameters.AddWithValue("@last", LastNameTextbox.Text);
addUser.Parameters.AddWithValue("@ema", EmailTextbox.Text);
addUser.Parameters.AddWithValue("@pass", PasswordTextbox.Text);
addUser.Parameters.AddWithValue("@bid", BirthDateDateTimePicker.Value);
addUser.Parameters.AddWithValue("@num", PhoneNumberTextbox.Text);
addUser.ExecuteNonQuery();

[执行此命令时,标题出现异常。如何解决?

c# sql-server visual-studio
1个回答
0
投票

根据您的描述,您想将datetimepicker.value插入数据库。

我建议您删除插入参数的单引号。

此外,您需要将BirthDate列设置为日期类型。

代码:

string insertUser = "Insert into Users(FirstName, LastName, EmailAddress, Password, BirthDate, PhoneNumber)"
     + "values(@first,@last,@ema,@pass,@bid,@num);";
            SqlCommand addUser = new SqlCommand(insertUser, scn);
            addUser.Parameters.Clear();
            addUser.Parameters.AddWithValue("@first", FirstNameTextbox.Text);
            addUser.Parameters.AddWithValue("@last", LastNameTextbox.Text);
            addUser.Parameters.AddWithValue("@ema", EmailTextbox.Text);
            addUser.Parameters.AddWithValue("@pass", PasswordTextbox.Text);
            addUser.Parameters.AddWithValue("@bid", BirthDateDateTimePicker.Value.ToString("yyyy-MM-dd"));              
            addUser.Parameters.AddWithValue("@num", PhoneNumberTextbox.Text);
            addUser.ExecuteNonQuery();
            MessageBox.Show("Data inserted successfully");

结果:enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.