C# 调用SQL的存储过程的接口及实现
生活随笔
收集整理的這篇文章主要介紹了
C# 调用SQL的存储过程的接口及实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
<?xml version="1.0" encoding="UTF-8"?> 1. 接口為ExecuteStoredProcedure(string storedProcedureName, params ObjectParameter[] parameters) 2. 參數為存儲過程名字, 及輸入值。 3. 思路:創建連接(連接中指定了是Sql/MySql/ODBC等等); 創建通用DbCommand;更改Text以及Type;添加通用Parameter(DBParameter是抽象類,因此需要判斷connection類型);判斷連接狀態(需Open); 調用Execute方法; 關閉連接。 4. 實現如下:
// In V1 of the EF, the context connection is always an EntityConnection EntityConnection entityConnection = (EntityConnection)protocolDB.Connection; // The EntityConnection exposes the underlying store connection DbConnection storeConnection = entityConnection.StoreConnection; DbCommand command = storeConnection.CreateCommand(); command.CommandText = storedProcedureName; command.CommandType = CommandType.StoredProcedure; if (storeConnection is SqlConnection) { foreach (ObjectParameter p in parameters) { command.Parameters.Add(new SqlParameter { ParameterName = p.Name, Value = p.Value }); } } else if (storeConnection is MySqlConnection) { foreach (ObjectParameter p in parameters) { command.Parameters.Add(new MySqlParameter { ParameterName = p.Name, Value = p.Value }); } } else { return enProtocolDBReturnCodes.OPERATION_FAILED; } bool openingConnection = command.Connection.State == ConnectionState.Closed; if (openingConnection) { command.Connection.Open(); } command.ExecuteNonQuery(); if (openingConnection && command.Connection.State == ConnectionState.Open) { command.Connection.Close(); }
// In V1 of the EF, the context connection is always an EntityConnection EntityConnection entityConnection = (EntityConnection)protocolDB.Connection; // The EntityConnection exposes the underlying store connection DbConnection storeConnection = entityConnection.StoreConnection; DbCommand command = storeConnection.CreateCommand(); command.CommandText = storedProcedureName; command.CommandType = CommandType.StoredProcedure; if (storeConnection is SqlConnection) { foreach (ObjectParameter p in parameters) { command.Parameters.Add(new SqlParameter { ParameterName = p.Name, Value = p.Value }); } } else if (storeConnection is MySqlConnection) { foreach (ObjectParameter p in parameters) { command.Parameters.Add(new MySqlParameter { ParameterName = p.Name, Value = p.Value }); } } else { return enProtocolDBReturnCodes.OPERATION_FAILED; } bool openingConnection = command.Connection.State == ConnectionState.Closed; if (openingConnection) { command.Connection.Open(); } command.ExecuteNonQuery(); if (openingConnection && command.Connection.State == ConnectionState.Open) { command.Connection.Close(); }
轉載于:https://blog.51cto.com/muzizongheng/1333047
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的C# 调用SQL的存储过程的接口及实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: xcode4 语法高亮和自动补全失效的解
- 下一篇: 使用SmsManager服务群发短信