从字符串转换日期和/或时间时转换失败

时间:2015-07-22 03:03:14

标签: c# sql asp.net

只要插入的数据格式正确,数据就会被插入而没有任何错误,但令我不知道的是,即使数据格式正确,也无法插入数据!这有什么不对?

表:

create table announ(
    id int not null primary key,
    comName varchar(200) not null,
    sName varchar(100)  not null,
    annDate datetime2(7) not null,
    fYearEnd datetime2(7)  null,
    quarterr int  null, 
    QFREDate datetime2(7) null,
    figure varchar(50)  null,
    fName varchar(50)  null,
    contentType varchar(200) null,
    data varbinary(MAX) 
)

代码:

 string query = "insert into announ (comName,sName, annDate, fYearEnd, quarterr, QFREDate, figure, fName, contentType, Data) values (@comName,@sName,@annDate, @fYearEnd,@quarterr, @QFREDate,@figure,@fName, @contentType, @Data)";
using (SqlCommand cmd = new SqlCommand(query))
{
    cmd.Connection = con;
    cmd.Parameters.AddWithValue("@comName", txtcname.Text);
    cmd.Parameters.AddWithValue("@sName", txtsname.Text);
    cmd.Parameters.AddWithValue("@annDate", txtannDate.Text);
    cmd.Parameters.AddWithValue("@fYearEnd", txtfye.Text);
    cmd.Parameters.AddWithValue("@quarterr", txtq.Text);
    cmd.Parameters.AddWithValue("@QFREDate", txtqfre.Text);
    cmd.Parameters.AddWithValue("@figure", txtf.Text);
    cmd.Parameters.AddWithValue("@fName", filename);
    cmd.Parameters.AddWithValue("@ContentType", contentType);
    cmd.Parameters.AddWithValue("@Data", bytes);

    cmd.ExecuteNonQuery();
    con.Close();
}

2 个答案:

答案 0 :(得分:2)

我已完成此更改,其中文本可以解析为日期时间并且可以正常工作

string query = "insert into announ (comName,sName, annDate, fYearEnd, quarterr, QFREDate, figure, fName, contentType, Data) values (@comName,@sName,@annDate, @fYearEnd,@quarterr, @QFREDate,@figure,@fName, @contentType, @Data)";
using (SqlCommand cmd = new SqlCommand(query))
{
    cmd.Connection = con;
    cmd.Parameters.AddWithValue("@comName", txtcname.Text);
    cmd.Parameters.AddWithValue("@sName", txtsname.Text);
    cmd.Parameters.AddWithValue("@annDate", DateTime.Parse(txtannDate.Text));
    cmd.Parameters.AddWithValue("@fYearEnd", DateTime.Parse(txtfye.Text));
    cmd.Parameters.AddWithValue("@quarterr", txtq.Text);
    cmd.Parameters.AddWithValue("@QFREDate", DateTime.Parse(txtqfre.Text));
    cmd.Parameters.AddWithValue("@figure", txtf.Text);
    cmd.Parameters.AddWithValue("@fName", filename);
    cmd.Parameters.AddWithValue("@ContentType", contentType);
    cmd.Parameters.AddWithValue("@Data", bytes);

    cmd.ExecuteNonQuery();
    con.Close();
}

答案 1 :(得分:0)

您想将其转换为更改实际的DateTime吗?请记住,DateTime是不可变的,您实际上无法更改DateTime。您必须引用DateTime的值,然后对其进行修改。

DateTime Immutability