C# 将日期时间组合框值插入数据库
我在一个windows窗体项目中使用c#和ado。我得到并抛出异常,说无法将日期和/或时间从字符转换为字符串,我将数据库中的数据类型指定为时间(7),日期指定为日期…我需要做些额外的事情吗???这是未处理sql异常标签下的meesage“从字符串转换日期和/或时间时转换失败”。使用代替,并创建一个参数化查询,该查询接受此C# 将日期时间组合框值插入数据库,c#,datetime,exception,ado.net,insertion,C#,Datetime,Exception,Ado.net,Insertion,我在一个windows窗体项目中使用c#和ado。我得到并抛出异常,说无法将日期和/或时间从字符转换为字符串,我将数据库中的数据类型指定为时间(7),日期指定为日期…我需要做些额外的事情吗???这是未处理sql异常标签下的meesage“从字符串转换日期和/或时间时转换失败”。使用代替,并创建一个参数化查询,该查询接受此日期时间值而不是文本字符串,例如: string c = ""; string s = ""; string d = ""; s
日期时间值而不是文本字符串,例如:
string c = "";
string s = "";
string d = "";
string t = "";
if (CarNameCombo.SelectedIndex >= 0 && SourceCombo.SelectedIndex >= 0 && DestinationCombo.SelectedIndex >= 0 && NumberOfPassengers.SelectedIndex >= 0)
c = CarNameCombo.Items[CarNameCombo.SelectedIndex].ToString();
s = SourceCombo.Items[SourceCombo.SelectedIndex].ToString();
d = SourceCombo.Items[DestinationCombo.SelectedIndex].ToString();
t = NumberOfPassengers.Items[NumberOfPassengers.SelectedIndex].ToString();
MessageBox.Show(""+c+s+d+t);
string date = dateTimePicker1.Text;
string date1 = dateTimePicker2.Text;
string x = richTextBox1.Text;
string y = richTextBox2.Text;
MessageBox.Show("" +date +date1);
SqlConnection conn = new SqlConnection("Data Source=PRAVEEN\\SQLEXPRESS;Initial Catalog=travelbooking;Integrated Security=True");
SqlCommand cmd = new SqlCommand("insert into BookDetails(CarName,Source,Destination,Date,FromAddress,ToAddress,Time,Numberpassengers)VALUES('" + c + "','" + s + "','" + d + "','" + date + "','" + x + "','" + y + "' '"+ date1 + "','" + t + "'", conn)");
cmd.CommandType = CommandType.Text;
cmd.Connection = conn;
//cmd.Parameters.AddWithValue("@CarName", c);
//cmd.Parameters.AddWithValue("@Source", s);
//cmd.Parameters.AddWithValue("@Destination", d);
//cmd.Parameters.AddWithValue("@Date", date);
//cmd.Parameters.AddWithValue("@FromAddress", richTextBox1.Text);
//cmd.Parameters.AddWithValue("@ToAddress", richTextBox2.Text);
//cmd.Parameters.AddWithValue("@Time", date1);
//cmd.Parameters.AddWithValue("@Numberpassengers", t);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
原始代码失败,因为您传递的日期格式为任意格式,而不是实际的日期值。SQL Server尝试使用与最终用户的区域设置不匹配的列排序规则解释此字符串 找到这个
DateTime date = dateTimePicker1.Value;
DateTime date1 = dateTimePicker2.Value;
...
SqlCommand cmd = new SqlCommand(
"insert into BookDetails(CarName,Source,Destination,Date,FromAddress,ToAddress,Time,Numberpassengers) " +
" VALUES(@CarName,@Source,@Destination,@Date,@FromAddress,@ToAddress, " +
" @Time,@NumPassengers)", conn)");
cmd.CommandType = CommandType.Text;
cmd.Connection = conn;
cmd.Parameters.AddWithValue("@CarName", c);
cmd.Parameters.AddWithValue("@Source", s);
cmd.Parameters.AddWithValue("@Destination", d);
cmd.Parameters.AddWithValue("@Date", date);
cmd.Parameters.AddWithValue("@FromAddress", richTextBox1.Text);
cmd.Parameters.AddWithValue("@ToAddress", richTextBox2.Text);
cmd.Parameters.AddWithValue("@Time", date1);
cmd.Parameters.AddWithValue("@Numberpassengers", t);
你应该发布你收到的全部错误信息。还要将您正在使用的平台添加到标签列表中,否则有知识的人将看不到这个问题。
namespace First_Csharp_app
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
String gender; //we have to define this
private void button1_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(str);
String str = "server=MUNESH-PC;database=windowapp;UID=sa;password=123";
String query = "insert into data (E.id,name,surname,age,gender,DOB) values ('"+this.eid_txt.text+"','"+this.nametxt.text+"','"+this.surname_txt.text+"','"+this.age_txt.text+"' , '"+this.gender+"' , '"+this.DateTimePicker1.Text+"')";
SqlCommand cmd = new sqComamnd(query,con);
SqlDataReader dbr;
try
{
con.open();
dbr = cmd.ExecuteReader();
MessageBox.Show("saved");
while(dbr.read())
{
}
}
catch (Exception es)
{
MessageBox.Show(es.Message);
}
}
private void rediobutton1.checked(object sender, EventArgs e)
{
gender = "male";
}
private void rediobutton1.checked(object sender, EventArgs e)
{
gender = "female";
}
}
}