2012-11-17 49 views
0

我有一個WPF應用程序。 date是我的表和它的兩列employeenamevarchar(10))和datedatetime將char數據類型轉換爲日期時間數據類型導致超出範圍的日期時間值

我的代碼是:

Sqlconncetion con = new Sqlconnection("my database connection ");  
SqlCommand cmd = new SqlCommand("insert into date values('"+textBox1.Text+"','"+datePicker1.Text+"')", con);  
con.Open();    
int n = cmd.ExecuteNonQuery();     
if (n > 0) 
{ 
    MessageBox.Show("insert"); 
} 

其實我的WPF datepicker格式輸入,"dd/mm/yyyy「和SQL Server表接受的日期格式mm/dd/yyyy 。我怎樣才能改變我的SQL Server datetime數據類型的日期格式?請給出解決方案的代碼在C#..

我的任務是顯示所有姓名和出生日期。我的條件是基本的,但是在日期選擇和按鈕輸入時,我得到了例外。我的代碼是

SqlConnection con = new SqlConnection("my connection "); 

SqlDataAdapter da = new SqlDataAdapter("select name,date from date where date between'"+ Convert.ToDateTime(datePicker2.SelectedDate)+"' and '"+ Convert.ToDateTime(datePicker3.SelectedDate)+"'",con); 

DataSet ds = new DataSet(); 

da.Fill(ds, "entry"); 

da.Dispose(); 

dataGrid1.DataContext = ds.Tables["entry"].DefaultView; 

plz幫助我解決代碼錯誤並編寫正確的代碼。這是一個WPF應用程序。

+2

不要把日期作爲字符串 - 讓他們爲'datetime'在服務器和'DateTime'在C#(如:'datePicker1.SelectedDate's值),讓ADO.Net處理所需的翻譯。 –

回答

3

使用SqlParameters將您的值傳遞給數據庫。它爲您提供類型安全性,性能並防止SQL注入。還可以使用using語句來保證數據庫的連接將被關閉:

var cmdText = "INSERT INTO date VALUES(@name, @date)"; 

using(var con = new SqlConnection(conString)) 
using(var cmd = new SqlCommand(cmdText, con)) { 
    cmd.Parameters.Add("@name", textBox1.Text); 
    cmd.Parameters.Add("@date", datePicker1.SelectedDate); 
    con.Open(); 
    int n = cmd.ExecuteNonQuery(); 
    //... 
} 
+1

如果它是WPF DatePicker,我認爲它應該使用的['SelectedDate'](http://msdn.microsoft.com/zh-cn/library/system.windows.controls.datepicker.selecteddate.aspx)屬性我在我的評論中犯了同樣的錯誤) - 它沒有「Value」屬性。 –

+0

@Damien_The_Unbeliever謝謝!對於某些未知的原因,我認爲它的WinForms :) –

+0

thanx for help第二項任務是如何檢索數據數據條件庫如 – user1464596

相關問題