2016-05-20 2 views
0

Как добавить используя заявление в следующем заявленииКак добавить используя заявление в ExecuteScalar заявлении

this.OpenConnection(); 
SqlParameter[] SqlParameters = {new SqlParameter("@a",A)}; 
return Convert.ToLong( SqlHelper.ExecuteScalar((SqlConnection)DatabaseConnection, "StoredprocName",SqlParameters).ToString()); 
+0

Почему 'SqlHelper' не удается открыть соединение? – Crowcoder

ответ

0

Вот пример из MSDN, надеюсь, что это поможет:

static public int AddProductCategory(string newName, string connString) 
{ 
    Int32 newProdID = 0; 
    string sql = 
     "INSERT INTO Production.ProductCategory (Name) VALUES (@Name); " 
     + "SELECT CAST(scope_identity() AS int)"; 
    using (SqlConnection conn = new SqlConnection(connString)) 
    { 
     SqlCommand cmd = new SqlCommand(sql, conn); 
     cmd.Parameters.Add("@Name", SqlDbType.VarChar); 
     cmd.Parameters["@name"].Value = newName; 
     try 
     { 
      conn.Open(); 
      newProdID = (Int32)cmd.ExecuteScalar(); 
     } 
     catch (Exception ex) 
     { 
      Console.WriteLine(ex.Message); 
     } 
    } 
    return (int)newProdID; 
} 

Подробнее о SqlCommand. ExecuteScalar Method(): https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executescalar(v=vs.110).aspx

+0

Я не могу инициализировать соединение с базой данных здесь, он был инициализирован в некоторой другой библиотеке. –

+0

Я только что обнаружил, что вы не сможете использовать sqlHelper, как показано в коде. Вот информация MSDN о sqlHelper: _This API поддерживает инфраструктуру продукта и не предназначен для использования непосредственно с вашего кода. https://msdn.microsoft.com/en-us/library/system.data. linq.sqlclient.sqlhelpers (v = vs.110) .aspx – YouneS