【发布时间】:2012-10-02 22:35:30
【问题描述】:
我的网页中有一个按钮,可以将一些值插入到 sql server 列中。这些值之一恰好是数据类型 Date。以下是我的 asp.net 页面代码:
protected void Button1_Click(object sender, EventArgs e)
{
con.Open();
SqlCommand cmd1 = new SqlCommand("insert into dbo.FillTable values ('TextBox2.Text', 'TextBox1.Text', 'FA0005')",con);
SqlDataAdapter dr = new SqlDataAdapter(cmd1);
con.Close();
DataSet dl = new DataSet();
dr.Fill(dl);
//Label5.Text = dl.Tables[0].Rows[1][9].ToString();
}
我希望能够让用户以 (yyyy-MM-dd) 格式输入日期,这是我的 sql 服务器的日期格式。 “TextBox2”是保存日期输入的文本框。每当我像 ex 一样简单地硬编码日期时。 '2010-01-01','50','FA0005',它运行良好并插入记录。但是,当我编码为“TextBox2.Text”、“TextBox1”等时。它给了我一个错误,说“从字符串转换日期和/或时间时转换失败”。有人可以帮我弄这个吗?这让我很困惑,因为“yyyy-mm-dd”格式的日期效果很好,这与文本框相同。
【问题讨论】:
-
您正在尝试将文本
TextBox2.Text显式插入到日期字段中,这是导致错误的原因。您还想查看参数化查询;如果你允许用户传入值,你很容易受到 SQL 注入攻击。 -
由于您使用的是 sql server,因此查看存储过程可能会有所帮助。
标签: c# asp.net sql sql-server