日期:2014-05-17  浏览次数:20876 次

如何把一个变量的字符串型转成日期型
我想把一个字符串变量转换成日期型录入到数据库中,数据库中用的是
这是.NET的图
在线等,谢谢

------解决方案--------------------
没有必要转,是你的sql语句有问题吧?select是干嘛的?
直接写
sql="insert into Talk(讲话人,讲话日期) values(@a,@b)"
SqlCommand command = new SqlCommand(sql, connection);
command.Parameters.AddWithValue("@a", box1.Text);
command.Parameters.AddWithValue("@b", box2.Text);
command.ExecuteNonQuery();

------解决方案--------------------
对字符串常量,要替换其中的单引号。例如
textBox1.Text.Trim().Replace("'","''")


对其它类型,要进行类型验证。例如
DateTime.Parse(mastedTextBox1.Text).ToString("yyyy-MM-dd HH:mm:ss")


如果有一个字段是int型的,那么你在拼入字符串时要写
int.Parse(textBox3.Text).ToString()


进行这样的类型验证,同时也可以防止所谓的“SQL注入”。

其中最为重要的是,对字符串内容中的单引号要进行转义。在讲话人、讲话内容、文件编号等任何一个字段里,都可以允许单引号。

有些人一说到“防止SQL注入”就扯到什么“过滤单引号”上,这些人在瞎写。道理很简单,只要业务逻辑上允许用户录入单引号那么你的程序就应该接受并保存这种数据,而搞过滤的人则根本不懂如何将单引号保存到数据库字段里。