Action Executedataset(ByVal qry作为字符串)作为数据集 Dim cmdtext作为新的SqlCommand Dim ds作为新数据集 Dim da作为新的SqlDataAdapter 尝试 'con=cls.cnn# 'cmd

Action Executedataset(ByVal qry作为字符串)作为数据集 Dim cmdtext作为新的SqlCommand Dim ds作为新数据集 Dim da作为新的SqlDataAdapter 尝试 'con=cls.cnn# 'cmd,sql,database,vb.net,prepared-statement,Sql,Database,Vb.net,Prepared Statement,Action Executedataset(ByVal qry作为字符串)作为数据集 Dim cmdtext作为新的SqlCommand Dim ds作为新数据集 Dim da作为新的SqlDataAdapter 尝试 'con=cls.cnn# 'cmdtext.Connection=con# cmdtext.Connection=检查连接(con)'# cmdtext.CommandText=qry cmdtext.CommandType=CommandType.Text da.Select

Action Executedataset(ByVal qry作为字符串)作为数据集 Dim cmdtext作为新的SqlCommand Dim ds作为新数据集 Dim da作为新的SqlDataAdapter 尝试 'con=cls.cnn# 'cmdtext.Connection=con# cmdtext.Connection=检查连接(con)'# cmdtext.CommandText=qry cmdtext.CommandType=CommandType.Text da.SelectCommand=cmdtext da.填充(ds) cmdtext.Dispose() cmdtext=无 特例 MsgBox(例如Message.ToString) 结束尝试 端函数 作为布尔值的公共函数ExecuteProcedure(ByVal qry作为字符串) Dim cmdtext作为新的SqlCommand 尝试 'con=cls.cnn# 'cmdtext.Connection=con# cmdtext.Connection=检查连接(con)'# cmdtext.CommandText=qry cmdtext.CommandType=CommandType.StoredProcess cmdtext.ExecuteNonQuery() cmdtext.Dispose() cmdtext=无 特例 MsgBox(例如Message.ToString) 结束尝试 端函数
很抱歉,但是。。。我相信你错了?它们不需要事务,并且在允许服务器重用执行计划方面具有优势@您描述的基本内容是存储过程。虽然所有的存储过程都是预处理语句,但并非所有的预处理语句都是存储过程。@DavidSöderlund我都知道(事实上,我链接的文档讨论了这两者)。我想说的一点是,Icarus的回答似乎并不准确,例如我可以编译一个准备好的语句,允许服务器构建一个执行计划,然后多次重复使用它。这个答案完全忽略了这个模式。另外,AddWithValue()也有一些严重的缺点。最好使用带有显式类型信息的Add()重载。您能在这里添加更多详细信息吗?虽然我可以欣赏这个例子,但对一些片段的解释会很好。
Using c As New SqlConnection(ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString)
   c.Open()
using mytransaction = c.BeginTransaction()

   Dim command = New SqlCommand("INSERT INTO yourtable(image) values (@image)", c)
   ''# this is specific to the FileUploadControl but the idea is to get the
   ''#image in a byte array; however you do it, it doesn't matter
    Dim buffer(FileUpload1.PostedFile.ContentLength) As Byte
    FileUpload1.PostedFile.InputStream.Read(buffer, 0, buffer.Length)
    command.Parameters.AddWithValue("@image", buffer)
    command.ExecuteNonQuery()    
 mytransaction .Commit()
End Using
End Using