2016-01-07 6 views
0

Я не могу вставить данные в мою базу данных. Мне было интересно, правильно ли я использовал SCOPE_IIDENTITY. Я просто хочу вставить эти данные в свою базу данных без необходимости вручную вносить запрос в команду PurchaseOrderId.Не удается вставить данные в базу данных

В моем файле BllPurchaseOrder.cs:

public int InsertPO(String PurchName, String PurchDesc, int SuppId) 
    { 

     StringBuilder sql; 
     SqlCommand sqlCmd; 
     int result; 

     result = 0; 

     sql = new StringBuilder(); 
     sql.AppendLine("INSERT INTO PurchaseOrder(PurchName, PurchDesc, SuppId, CreateDate, SentStatus)"); 
     sql.AppendLine(" "); 
     sql.AppendLine("VALUES (@PurchName, @PurchDesc, @SuppId, @CreateDate, @SentStatus)"); 
     sql.AppendLine(" "); 
     sql.AppendLine("SELECT CAST(scope_identity() AS int)"); 
     sql.AppendLine(" "); 
     SqlConnection conn = dbConn.GetConnection(); 
     try 
     { 
      sqlCmd = new SqlCommand(sql.ToString(), conn); 

      sqlCmd.Parameters.AddWithValue("@PurchName", PurchName); 
      sqlCmd.Parameters.AddWithValue("@PurchDesc", PurchDesc); 
      sqlCmd.Parameters.AddWithValue("@CreateDate", DateTime.Now); 
      sqlCmd.Parameters.AddWithValue("@SuppId", SuppId); 
      sqlCmd.Parameters.AddWithValue("@SentStatus", "Sent"); 

      result = sqlCmd.ExecuteNonQuery(); 
     } 
     catch (Exception ex) 
     { 
      errMsg = ex.Message; 
     } 
     finally 
     { 
      conn.Close(); 
     } 

     return result; 
    } 

В моем InsertPO.aspx.cs:

int result = 0; 

     string PurchName = tbPurchName.Text; 
     string PurchDesc = tbPurchDesc.Text; 
     int SuppName = int.Parse(ddlSuppName.SelectedValue); 

     BllPurchaseOrder po = new BllPurchaseOrder(); 
     result = po.InsertPO(PurchName, PurchDesc, SuppName); 

     if (result > 0) 
     { 
      Response.Write("<script>alert('Insert Successful!'); </script>"); 
      Response.Redirect("~/ViewAllPO.aspx"); 
     } 
     else 
     { 
      Response.Write("<script>alert('Insert NOT Successful'); </script>"); 
     } 
+0

необходимо Также ',' 'между INSERT' и' SELECT CAST (scope_identity() AS INT) 'команды – Irshad

+0

@JenishRabadiya Он работает с ** Вставка ** Заявление слишком –

+0

Что вы имеете в' dbConn.GetConnection() '? Я не вижу 'conn.open()' где-нибудь? –

ответ

1

Использование ExecuteScalar вместо ExecuteNonQuery, так как вы выбираете значение, которое вы хотите вернулись.

0

Кажется, что ваш код хорошо и должен работать,

Но проблема в том, что вы забыли открыть соединение.

Поэтому, пожалуйста, откройте подключение.

С уважением.

Смежные вопросы