我有一些VB代码:
If cnn.State = ConnectionState.Closed Then
cnn.Open()
End If
Dim cmd As New SqlCommand("[WENCO].[dbo].[MyProc]", cnn)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue("@Data_Date", useDate)
cmd.Parameters.AddWithValue("@ALTERNATE_LOC", alternateLocation)
cmd.ExecuteReader()
该过程本身获取一些数据库信息,创建一个文件,然后写入该文件。该代码只是那些在 SSMS 中没有权限的用户的运行过程 GUI。我面临的问题是,每当必须写入文件的数据超过 104 KB 时,它根本不写入任何信息。
我自己可以从 SSMS 运行存储过程,而不会出现任何问题。
关于可能导致此问题的任何想法将不胜感激。
嘿伙计们感谢您的答案。我做了更多的挖掘,发现申请:
Dim command As New SqlCommand(queryString, connection)
Dim reader As SqlDataReader = command.ExecuteReader()
While reader.Read()
Console.WriteLine("{0}", reader(0))
End While
是答案。我不知道为什么它以这种方式超时,但这迫使它查看所有数据。
执行读取也有助于实现此:
如果事务死锁,则在调用 Read 之前可能不会引发异常。
如 MSDN 网站 http://msdn.microsoft.com/en-us/library/9kcbe65k(v=vs.110) 上所示.aspx
尝试使用 ExecuteNonQuery()
找到此链接,它在 C# 中,但应该相同:如何在 C# 程序中执行存储过程