我被困在这两天了。我只想按日期搜索我的表格。我在dataGridView中显示。如果我选择按钮dataGridView显示表中的所有数据。如果我选择日期然后按下按钮我会从捕获消息框中收到以下消息:
Conversion failed when converting data and/or time from character string.
表名:FlightDetails 列:DateDepart(日期)
string ConString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlConnection myDB = new SqlConnection(ConString);
SqlCommand com = new SqlCommand("SELECT * FROM FlightDetails WHERE DateDepart ='" + datDepartDate + "%'", myDB);
try
{
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = com;
DataTable dsDB = new DataTable();
sda.Fill(dsDB);
BindingSource bs = new BindingSource();
bs.DataSource = dsDB;
dataGridView1.DataSource = bs;
sda.Update(dsDB);
dataGridView1.Visible = true;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
我正在使用Visual Studio 2013,C#winforms。请使用代码指南。我确信我需要做的就是转换日期时间选择器,但我尝试过没有成功。
答案 0 :(得分:2)
我不确定为什么要在末尾添加%
,但最好使用参数而不是字符串,尤其是日期值,因为字符串表示依赖于文化:
SqlCommand com = new SqlCommand("SELECT * FROM FlightDetails WHERE DateDepart = @datDepartDate", myDB);
com.Parameters.Add("@datDepartDate", SqlDbType.DateTime)
.Value = datDepartDate;