c# – 通过ODBC执行参数化SQL StoredProcedure

前端之家收集整理的这篇文章主要介绍了c# – 通过ODBC执行参数化SQL StoredProcedure前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在C#WinForms应用程序中,我必须在MS sql Express服务器上执行参数化存储过程.数据库连接工作,过程工作,但我收到一条错误消息:

42000: Missing Parameter ‘@KundenEmail’

虽然我确定我正确添加了参数.也许你们中的一些人可以看看 – 我不知道该怎么搜索……

OdbcConnection ODBCConnection = new OdbcConnection();

try
{
    ODBCConnection.ConnectionString = ODBCConnectionString;
    ODBCConnection.Open();
}
catch (Exception DatabaseConnectionEx)
{
    if (ODBCConnection != null)
        ODBCConnection.Dispose();

    // Error Message

    return null;
}

OdbcParameter ODBCParameter = new OdbcParameter("@KundenEmail",OdbcType.NChar,50);
ODBCParameter.Value = KundenEmail;

OdbcCommand ODBCCommand = new OdbcCommand("getDetailsFromEmail",ODBCConnection);
ODBCCommand.CommandType = CommandType.StoredProcedure;
ODBCCommand.Parameters.Add(ODBCParameter);

DataTable DataTable = new DataTable();

OdbcDataAdapter ODBCDatadapter = new OdbcDataAdapter(ODBCCommand);
ODBCDatadapter.Fill(DataTable);
ODBCDatadapter.Dispose();

ODBCConnection.Close();
ODBCConnection.Dispose();

这是我收到的错误消息:

ERROR [4200][Microsoft][ODBC sql Server]The Procedure or method
‘getDetailsFromEmail’ expects the ‘@KundenEmail’-parameter,which
was not supplied.

啊,我错过了连接字符串

private static String ODBCConnectionString = "Driver={sql Server};Server=TESTSRV\\sqlEXPRESS;Database=TestDatabase;";

有任何想法吗?提前致谢.

解决方法

好吧 – 我现在设法自己解决这个问题,在MSDN文档的帮助下.

通过ODBC执行存储过程的正确语句如下:

OdbcCommand ODBCCommand = new OdbcCommand("{call getDetailsFromEmail (?)}",ODBCConnection);
ODBCCommand.CommandType = CommandType.StoredProcedure;
ODBCCommand.Parameters.AddWithValue("@KundenEmail",KundenEmail);

不过 – 谢谢你的帮助Thorsten.

猜你在找的C#相关文章