运行 DataAdapter/DataSet SQL 查询时如何检查错误?
这就是我使用 SQL Server 在 VB 中使用 DataAdapter 和 DataSet 更新表的方法:
sqlStmt = String.Format("INSERT INTO my_table (name, lastname) VALUES ('John', 'Doe')")
ds = New DataSet
da = New SqlDataAdapter(sqlStmt, My.Settings.ConnectionString)
da.Fill(ds)
我知道 Fill 方法在 INSERT 语句的情况下没有意义,但我是这项技术的新手,上面的语句完成了这项工作并更新该表没有问题。我的问题是:如果出现错误(例如重复键错误),我如何在我的应用程序中知道这一点?我应该将上面的代码放在 try/catch 块中吗?
另外,如果存在使用不使用 Fill 方法的 DataAdapter/DataSet 组合来运行 INSERT 语句的“正确”方法,也请指出。
This is how I update a table using DataAdapter and DataSet in VB using SQL Server:
sqlStmt = String.Format("INSERT INTO my_table (name, lastname) VALUES ('John', 'Doe')")
ds = New DataSet
da = New SqlDataAdapter(sqlStmt, My.Settings.ConnectionString)
da.Fill(ds)
I know that the Fill method does not make sense in case of an INSERT statement, but I am new to this technology and the above statement does the job and updates the table w/o problems. My question is this: If there was an error (say a duplicate key error) how would I know this in my application? Should I be putting the above code in a try/catch block?
Also, if there is a "proper" method for running INSERT statements using a DataAdapter/DataSet combination that does not use the Fill method, please indicate that as well.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
对于更新语句,您应该使用 SqlCommand 对象。
但是,如果您有机会从用户处获取数据,建议您使用参数化 SQL 查询,以减少 SQL 注入攻击的机会:)
回答您的其他问题:
是的。如果存在主键违规,则会抛出 SQLException。您可以使用 try-catch 块捕获它并显示一条消息或执行任何适当的操作。
For update statements, you should use the SqlCommand object.
However it is recommended that you use parameterized SQL queries, if by any chance you are acquiring the data from the user to reduce the chance of SQL Injection attacks :)
Answer to your other question:
Yes. If there was a primary key violation, a SQLException will be thrown. You can catch it using a try-catch block and show a message or do whatever appropriate.