연결이 초기 상태가 아니므로 빠른 문제가 있습니다.연결이 초기화되지 않았습니다.
나는 create 메소드를 호출 할 때 "ABC, XYZ, etc"와 같은 많은 varnames를 전달합니다.
foreach의 첫 번째 단계에서 저장 프로 시저가 올바르게 호출되고 모든 것이 제대로 작동합니다. 그러나 두 번째 패스에서, 나는 "ConnectionString을 속성이 intialized되지 않은 얻을
내가 루프의 외부 myConn.open 및 myConn.close을 이주자해야
내 코드 :.?
public bool Create()
{
bool isSuccess = true;
ConnectionStringSettings myConnectionStringSetting = ConfigurationManager.ConnectionStrings[0];
DbProviderFactory dbFactory = DbProviderFactories.GetFactory(myConnectionStringSetting.ProviderName);
DbConnection myConn = dbFactory.CreateConnection();
myConn.ConnectionString = myConnectionStringSetting.ConnectionString;
DataTable myDataTable = new DataTable();
string[] varNamesArray = m_variableNames.Split(',');
foreach (string varName in varNamesArray)
{
string vn = varName.Trim();
//stored procedure
DbCommand myCommand = dbFactory.CreateCommand();
myCommand.CommandText = "s_LockVariables";
myCommand.CommandType = CommandType.StoredProcedure;
myCommand.Connection = myConn;
//variables
DbParameter param1 = myCommand.CreateParameter();
param1.ParameterName = "@varName";
param1.DbType = DbType.String;
param1.Value = vn;
myCommand.Parameters.Add(param1);
DbParameter param2 = myCommand.CreateParameter();
param2.ParameterName = "@datasetID";
param2.DbType = DbType.Int32;
param2.Value = m_datasetID;
myCommand.Parameters.Add(param2);
DbParameter param3 = myCommand.CreateParameter();
param3.ParameterName = "@userID";
param3.DbType = DbType.Int32;
param3.Value = m_userID;
myCommand.Parameters.Add(param3);
DbParameter param4 = myCommand.CreateParameter();
param4.ParameterName = "@currentTime";
param4.DbType = DbType.DateTime;
param4.Value = DateTime.Now;
myCommand.Parameters.Add(param4);
try
{
using (myConn)
{
myConn.Open();
myCommand.ExecuteNonQuery();
myConn.Close();
}
}
catch (Exception e)
{
isSuccess = false;
throw new Exception(e.Message);
//TODO: catch data error
return isSuccess;
}
}
return isSuccess;
}
감사 존의 SKET이 코드에서 반환해야하는 경우 – cdub