3

我有一些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 运行存储过程。

任何可能导致此问题的想法将不胜感激。

4

2 回答 2

2

嘿家伙谢谢你的答案。我做了更多的挖掘,发现申请:

    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上找到

于 2013-11-14T17:40:06.813 回答
1

尝试使用ExecuteNonQuery()

找到这个链接,它在 C# 中,但应该是相同的:如何在 C# 程序中执行存储过程

于 2013-11-14T17:35:39.357 回答