将内联查询转换为存储过程

时间:2014-08-24 11:26:46

标签: c# sql vb.net

我有一个带内联查询的vb.net代码,如下所示。我需要将内联查询转换为存储过程。

在这种情况下,将对每一行执行存储过程,这将导致性能问题。

请建议我一些避免多次调用存储过程的解决方案。

 If Not chkShowAll.Checked Then
    For Each _row As DataGridViewRow In dgInvestor.Rows
       If ValidateDate(_row.Cells(2).Value.ToString, _Date) Then
          sSQL = "INSERT INTO INVESTOR_ACCOUNT VALUES('" & _row.Cells(0).Value & "'," & _row.Cells(1).Value & "," & _Date & ")"
         _Dta.RunQuery(cn, sSQL)
       End If
    Next
 End IF

1 个答案:

答案 0 :(得分:0)

如果您使用的是SQL Server 2008及更高版本,则可以使用表值参数一次将所有行传递到SP。请参阅this文章或者您可以将xml作为参数传递给SP并将该xml解析为SQL Server 2005的表example