使用Visual Studio 2010和C#
Table1
:
column datatype
------------------------
Currenttime time
如何将时间值插入table1
?
代码
string hr = txtHr.Text;
string min = txtMin.Text;
string time = hr + ":" + min;
insert into table1 values(time)
获取错误
插入无法从字符串转换为System.Timespan
table1
时。
需要代码帮助
答案 0 :(得分:1)
你应该 总是 (没有例外!)使用参数化查询,而不是将自己的SQL语句构造为字符串!只需google" SQL注入" - 这真是太可怕了...... 现在就停止这样做
要使用参数化查询,您应该习惯使用这样的模式:
// Define your SQL query - WITH parameters!
// And always specify the list of columns for your INSERT!
string query = "INSERT INTO dbo.Table1(CurrentTime) VALUES(@TimeValue)";
// use the "using" blocks to properly protect your disposable connection and command
using (SqlConnection con = new SqlConnection("server=.;database=test;integrated security=SSPI;"))
using (SqlCommand cmd = new SqlCommand(query, con))
{
string hr = txtHr.Text;
string min = txtMin.Text;
string time = hr + ":" + min;
// set the parameter value
cmd.Parameters.Add("@TimeValue", SqlDbType.Time).Value = TimeSpan.Parse(time);
// open connection, execute your INSERT, close connection
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
答案 1 :(得分:0)
你需要DateTime.Parse而不是Timespan.parse,Timespan代表时间长度
答案 2 :(得分:0)
你需要解析DateTime而不是datetimepicker本身,解析它的值
DateTime.Parse(datetimepicker1.value)