簡體   English   中英

使用c#將日期時間插入sql server 2008

[英]inserting Date Time to sql server 2008 using c#

failed to convert parameter value from a string to a datetime錯誤,我有一個文本框,用戶應在其中插入日期,我的代碼是:

SqlConnection Con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\targil3.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
SqlDataAdapter adapt = new SqlDataAdapter();
adapt.InsertCommand = new SqlCommand("INSERT INTO tblEmployee VALUES (@employeeNumber, @employeePrivateName, @employeeFamilyName ,@city, @street, @houseNo, @phoneNumber, @birthDate, @startWorkingDate)", Con);
adapt.InsertCommand.Parameters.Add("@employeeNumber", SqlDbType.VarChar).Value = textBox1.Text;
adapt.InsertCommand.Parameters.Add("@employeePrivateName", SqlDbType.VarChar).Value = textBox2.Text;
adapt.InsertCommand.Parameters.Add("@employeeFamilyName", SqlDbType.VarChar).Value = textBox3.Text;
adapt.InsertCommand.Parameters.Add("@city", SqlDbType.VarChar).Value = textBox4.Text;
adapt.InsertCommand.Parameters.Add("@street", SqlDbType.VarChar).Value = textBox5.Text;
adapt.InsertCommand.Parameters.Add("@houseNo", SqlDbType.Int).Value = textBox6.Text;
adapt.InsertCommand.Parameters.Add("@phoneNumber", SqlDbType.VarChar).Value = textBox7.Text;
adapt.InsertCommand.Parameters.Add("@birthDate", SqlDbType.DateTime).Value = textBox8.Text;
adapt.InsertCommand.Parameters.Add("@startWorkingDate", SqlDbType.DateTime).Value = textBox9.Text;

Con.Open();
adapt.InsertCommand.ExecuteNonQuery();
Con.Close();

我如何讓它工作?

我想問題出在這里:

adapt.InsertCommand.Parameters.Add("@birthDate", SqlDbType.DateTime).Value = textBox8.Text;

您將類型指定為DateTime類型,並且您將其傳遞給字符串。 嘗試將您的字符串值轉換為DateTime類型對象,如:

adapt.InsertCommand.Parameters.Add("@birthDate", SqlDbType.DateTime).Value 
        = Convert.ToDateTime(textBox8.Text);

如果在解析過程中遇到格式異常,則可以查看DateTime.ParseExactDateTime.TryParseExact 請參閱: 自定義日期時間格式

你可以理想地將adapt.InsertCommand設置為一個變量並改為使用它(包括perf和更少的輸入)

假設您保證文本框文本的正確格式,請使用datetime參數更改這樣的行

adapt.InsertCommand.Parameters.Add("@birthDate", SqlDbType.DateTime).Value = DateTime.Parse(textBox8.Text, "yyyy/MM/dd");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM