将char数据类型转换为datetime数据类型会导致日期时间值超出范围

时间:2012-11-17 11:32:03

标签: c# wpf sql-server-2005

我有一个WPF应用程序。 date是我的表格,其两列是employeenamevarchar(10))和datedatetime

我的代码是:

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应用程序。

1 个答案:

答案 0 :(得分: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();
     //...
}