如何将时间列插入SQL Server

时间:2014-08-16 09:27:45

标签: c# asp.net sql-server datetime

使用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

需要代码帮助

3 个答案:

答案 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)