【发布时间】:2020-08-29 17:07:11
【问题描述】:
我在 myscript.sql 文件中有一个存储过程,如下所示:
CREATE PROCEDURE [dbo].[_GetUserID]
@EmailAddress NVARCHAR(254)
AS
DECLARE @UserID UNIQUEIDENTIFIER;
SELECT @UserID = [ID]
FROM [dbo].[User]
WHERE [EmailAddress] = @EmailAddress
PRINT @UserID
GO
我有一些依赖 Dapper 来运行此脚本的 C# 代码。当我将它复制并粘贴到 Azure Data Studio 中时,我可以成功运行此脚本。但是,当我尝试从代码运行此脚本时,出现错误:
“GO”附近的语法不正确
我的 C# 代码如下所示:
try
{
var script = File.ReadAllText("<path to myScript.sql is here>");
using (var connection = new SqlConnection(dbConnectionString))
{
var command = connection.CreateCommand();
command.CommandText = script;
command.CommandType = CommandType.Text;
connection.Open();
command.ExecuteNonQuery();
}
Console.WriteLine("Success.");
}
catch (Exception ex)
{
Console.WriteLine($"Failed. Reason: '{ex.Message}')");
}
我不明白为什么我可以从 Azure Data Studio 运行 myScript.sql,但是,它在我的 C# 代码中不起作用。我也在使用相同的方法创建表,它工作正常。我不确定我错过了什么。
【问题讨论】:
标签: c# sql-server dapper