sql = "insert into 职工(编号,姓名,出生年月) values(@编号,@姓名,@出生年月) "
不改sqlstring不行吧!
sql = "insert into 职工(编号,姓名,出生年月) values('{0}','{1}','{2}') "
再使用string.Format(sql,TextBox1.Text,TextBox2.Text,TextBox3.Text)但是虽然参数复杂但是参数安全!你可以参考SqlHelper是怎么处理这些参数的!
不改sqlstring不行吧!
sql = "insert into 职工(编号,姓名,出生年月) values('{0}','{1}','{2}') "
再使用string.Format(sql,TextBox1.Text,TextBox2.Text,TextBox3.Text)但是虽然参数复杂但是参数安全!你可以参考SqlHelper是怎么处理这些参数的!
解决方案 »
- 客户端checkboxlist选定项改变事件 使用javascript 不刷新
- asp.net用UrlRewriter.dll组件地址重写的问题
- 关于IE浏览器sessionID共享的问题
- 关于fckeditor编辑器,上传到服务器后不能浏览服务器?
- 关于在aspdotnet在table上画线
- GridView1_RowUpdating的问题
- |M| 关于DataView的RowFilter 对日期进行过滤的问题 大家看看怎么过滤 我过滤不了 谢谢
- 1.在ASP.NET(C#)中,怎样把HTML写入SQL SERVER数据库?
- 这是客户端脚本吗?我想在客户端,当点全选的时候,checkboxlist能够全部选中!
- vs .net下使用code behind技术问题
- 在DataGrid中显示主次关系数据
- 用户控件的问题,帮忙解决一下,谢谢!
错误提示:System.Data.OleDb.OleDbException: 标准表达式中数据类型不匹配。 at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(Int32 hr) at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) at System.Data.OleDb.OleDbCommand.ExecuteNonQuery() at second.WebForm1.insertdata() in c:\inetpub\wwwroot\second\WebForm1.aspx.vb:line 101
sql = "insert into 职工(编号,姓名,出生年月) values(1,'aa',#12/4/2001#)"但这样做不好的是在程序调试的时候需要对sql语句进行大的修改(比如一个n行的sql语句),而且参数类型安全也不好,参数在调试的时候比较方便,虽然要写多点东西。
comm.Parameters.Add(New System.Data.OleDb.OleDbParameter("@编号", SqlDbType.Int))
comm.Parameters("@编号").Value = CInt(TextBox1.Text) comm.Parameters.Add(New System.Data.OleDb.OleDbParameter("@姓名", SqlDbType.Char))
comm.Parameters("@姓名").Value = TextBox2.Text comm.Parameters.Add(New System.Data.OleDb.OleDbParameter("@出生年月", SqlDbType.Char))
comm.Parameters("@出生年月").Value = TextBox3.Text Try
comm.Connection.Open()
增加: comm.CommandType = CommandType.Text
我的目的是要把
comm.Parameters.Add(New System.Data.OleDb.OleDbParameter("@编号", System.Data.OleDb.OleDbType.Integer, 10))
comm.Parameters("@编号").Value = TextBox1.Text
这些去掉,而在sql改点东西。
wangjingjing390(晶晶) 回答的可以使用.
就是在对boolean型插入的时候提示数据类型错误.还有就是:在access和sql server上,这些代码是不是都是一样.如果更改数据库的话,需不需要更改东西.?????????????
楼住的意思是不想插入“编号”是吧?
sql = "insert into 职工(编号,姓名,出生年月) values(‘你想要的东西’,@姓名,@出生年月) "
我想要把:
comm.Parameters.Add(New System.Data.OleDb.OleDbParameter("@编号", System.Data.OleDb.OleDbType.Integer, 10))
comm.Parameters("@编号").Value = TextBox1.Text comm.Parameters.Add(New System.Data.OleDb.OleDbParameter("@姓名", System.Data.OleDb.OleDbType.Char, 50))
comm.Parameters("@姓名").Value = TextBox2.Text comm.Parameters.Add(New System.Data.OleDb.OleDbParameter("@出生年月", System.Data.OleDb.OleDbType.DBDate, 10))
comm.Parameters("@出生年月").Value = TextBox3.Text
这些都省掉,因为写这些的时候实在是麻烦.后来我是用楼上的sql = String.Format("insert into 职工(编号,姓名,出生年月) values('{0}','{1}','#{2}#') ",TextBox1.Text,TextBox2.Text,DateTime.Parse(TextBox3.Text).ToString("M/d/yyyy"));
方法,这方法挺不错的。我把后面的数据改成数据库中的数据类型就可以了。
不过我不知道boolean的通配符是什么????
要不你看你添加参数好麻烦嘛支持以上观点,你输入的时间内容与数据库里面的时间不匹配
改成这样:
DateTime.Parse(TextBox3.Text).ToString("M/d/yyyy")
最后一个问题。
boolean型的通配符是什么?