C#調用ODBC連接SQL Server數據庫的存儲過程


OdbcConnection con = new OdbcConnection("Driver={SQL Server};server=PC-200201070359;uid=sa;pwd=123;database=test;");
            try
C#調用ODBC連接SQL <wbr>Server數據庫的存儲過程            {
                con.Open();
                OdbcCommand command = new OdbcCommand();
                command.Connection = con;
                command.CommandType = CommandType.StoredProcedure;
                //command.CommandText = "MaxAge";   //存儲過程名稱 


                command.CommandText = "{call MaxAge (?, ?,?)}";
                //輸入參數
                OdbcParameter para = new OdbcParameter("@Name1", OdbcType.NVarChar, 10);
                para.Value = "James";
                command.Parameters.Add(para);

                //輸入參數
                para = new OdbcParameter("@Name2", OdbcType.NVarChar, 10);
                para.Value = "Mary";
                command.Parameters.Add(para);

                //輸出參數(參數名稱大小寫無關)
                para = new OdbcParameter("@MaxAge", OdbcType.Int, 4);
                para.Direction = ParameterDirection.Output;
                command.Parameters.Add(para);


                int i = command.ExecuteNonQuery();  //執行成功返回-1

                string k = command.Parameters["@Maxage"].Value.ToString();
            }
            catch (Exception ex)
C#調用ODBC連接SQL <wbr>Server數據庫的存儲過程            {

                //throw;
            }

可能遇到的問題:

使用ODBC方法,只能方法時會報這樣的異常:ERROR [42000] [Microsoft][ODBC SQL Server Driver][SQL Server]過程 'MaxAge' 需要參數 '@Name1',但未提供該參數。

解決辦法:將command.CommandText = "MaxAge";   //存儲過程名稱 改為 command.CommandText = "{call MaxAge (?, ?,?)}";即可,目前原因未知;前面的方法在sqlclient中是可用的

更多可參看鏈接:http://www.cnblogs.com/gossip/archive/2009/06/15/1503884.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM