2013-10-24 25 views
0

這是我的aspx.cs頁面,這些代碼應該插入到數據庫的值,但目前它不好,它沒有插入數據庫,我沒有得到任何錯誤,但插入不發生,我不知道什麼是錯誤的.IS有可能性SqlException?或任何其他問題?數據插入到數據庫不會發生使用asp.net wih c#

protected void btnSkipSubmit_Click(object sender, EventArgs e) 
{ 
    int random = 0; 
    bool isValidInt = int.TryParse(txtrandom.Text, out random); 
    //string dummmy = "D"; 
    //int dum = 0; 
    Patient p = new Patient(); 

    //PatientBill pb = new PatientBill(); 
    myConnection obj1 = new myConnection(); 
    DateTime sdt = DateTime.Now; 
    // string a; 
    string str = ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString; 
    string cmdString = ""; 
    SqlConnection con = new SqlConnection(str); 
    SqlCommand cmd = new SqlCommand(cmdString, con); 
    SqlTransaction transaction; 

    if (isValidInt) 
    { 
     for (int i = 0; i < random; i++) 
     { 

      //a = obj1.fnSkipPatient(p); 

      string dummmy = "D"; 
      int dum = 0; 
      //DateTime sdt = DateTime.Now; 
      cmdString = "INSERT INTO Patient_Data(PatientID,PatientName,F_H_G,F_H_GName,AgeOnRegn,Email,ContactNo,Gender,Married,AddressLine1,AddressLine2,City,PinCode,Religion,Occupation,RegTime,VisitDate,CurrDept,NextDept,PayID,PayDet1,PayDet2,PayDet3,PayValidity,Archived,UpdateUser,UpdateShift,UpdateDate,LocID,AddressLine3,Remark) VALUES (@PatientID,@PatientName,@F_H_G,@F_H_GName,@AgeOnRegn,@Email,@ContactNo,@Gender,@Married,@AddrLine1,@AddrLine2,@City,@PinCode,@Religion,@Occupation,@RegTime,@VisitDate,@CurrDept,@NextDept,@PayID,@PayDet1,@PayDet2,@PayDet3,@PayValidity,@Archived,@UpdateUser,@UpdateShift,@UpdateDate,@LocID,@AddrLine3,@Remark)"; 
      con = new SqlConnection(str); 
      try 
      { 
       //log.Debug("Entering fnAddPatient method-Function to add a new patient into the database,generate registration bill"); 
       con.Open(); 
       transaction = con.BeginTransaction(); 

       cmd = new SqlCommand(cmdString, con, transaction); 

       cmd.Parameters.Add("@PatientID", SqlDbType.VarChar, 12); 
       cmd.Parameters["@PatientID"].Value = p.HospitalNo; 

       cmd.Parameters.Add("@PatientName", SqlDbType.VarChar, 30); 
       cmd.Parameters["@PatientName"].Value = dummmy; 

       cmd.Parameters.Add("@F_H_G", SqlDbType.VarChar, 1); 
       cmd.Parameters["@F_H_G"].Value = dummmy; 

       cmd.Parameters.Add("@F_H_GName", SqlDbType.VarChar, 30); 
       cmd.Parameters["@F_H_GName"].Value = dummmy; 

       cmd.Parameters.Add("@AgeOnRegn", SqlDbType.Int); 
       cmd.Parameters["@AgeOnRegn"].Value = dum; 

       cmd.Parameters.Add("@Email", SqlDbType.VarChar, 40); 
       cmd.Parameters["@Email"].Value = dummmy; 

       cmd.Parameters.Add("@ContactNo", SqlDbType.VarChar, 12); 
       cmd.Parameters["@ContactNo"].Value = dummmy; 

       cmd.Parameters.Add("@Gender", SqlDbType.VarChar, 1); 
       cmd.Parameters["@Gender"].Value = dummmy; 

       cmd.Parameters.Add("@Married", SqlDbType.VarChar, 1); 
       cmd.Parameters["@Married"].Value = dummmy; 

       cmd.Parameters.Add("@AddrLine1", SqlDbType.VarChar, 100); 
       cmd.Parameters["@AddrLine1"].Value = dummmy; 

       cmd.Parameters.Add("@AddrLine2", SqlDbType.VarChar, 100); 
       cmd.Parameters["@AddrLine2"].Value = dummmy; 

       cmd.Parameters.Add("@AddrLine3", SqlDbType.VarChar, 100); 
       cmd.Parameters["@AddrLine3"].Value = dummmy; 

       cmd.Parameters.Add("@City", SqlDbType.VarChar, 20); 
       cmd.Parameters["@City"].Value = dummmy; 

       cmd.Parameters.Add("@PinCode", SqlDbType.Int); 
       cmd.Parameters["@PinCode"].Value = dum; 

       cmd.Parameters.Add("@Religion", SqlDbType.VarChar, 20); 
       cmd.Parameters["@Religion"].Value = dummmy; 

       cmd.Parameters.Add("@Occupation", SqlDbType.VarChar, 20); 
       cmd.Parameters["@Occupation"].Value = dummmy; 

       cmd.Parameters.Add("@RegTime", SqlDbType.DateTime); 
       cmd.Parameters["@RegTime"].Value = sdt; 

       cmd.Parameters.Add("@VisitDate", SqlDbType.DateTime); 
       cmd.Parameters["@VisitDate"].Value = sdt; 

       cmd.Parameters.Add("@CurrDept", SqlDbType.Int); 
       cmd.Parameters["@CurrDept"].Value = dum; 

       cmd.Parameters.Add("@NextDept", SqlDbType.Int); 
       cmd.Parameters["@NextDept"].Value = dum; 

       cmd.Parameters.Add("@PayId", SqlDbType.VarChar, 2); 
       cmd.Parameters["@PayId"].Value = dummmy; 

       cmd.Parameters.Add("@PayDet1", SqlDbType.VarChar, 15); 
       cmd.Parameters["@PayDet1"].Value = dummmy; 

       cmd.Parameters.Add("@PayDet2", SqlDbType.VarChar, 50); 
       cmd.Parameters["@PayDet2"].Value = dummmy; 

       cmd.Parameters.Add("@PayDet3", SqlDbType.VarChar, 15); 
       cmd.Parameters["@PayDet3"].Value = dummmy; 

       cmd.Parameters.Add("@PayValidity", SqlDbType.DateTime); 
       cmd.Parameters["@PayValidity"].Value = sdt; 

       cmd.Parameters.Add("@Archived", SqlDbType.VarChar, 1); 
       cmd.Parameters["@Archived"].Value = dummmy; 

       cmd.Parameters.Add("@UpdateUser", SqlDbType.VarChar, 20); 
       cmd.Parameters["@UpdateUser"].Value = dummmy; 

       cmd.Parameters.Add("@UpdateShift", SqlDbType.Int); 
       cmd.Parameters["@UpdateShift"].Value = dum; 

       cmd.Parameters.Add("@UpdateDate", SqlDbType.DateTime); 
       cmd.Parameters["@UpdateDate"].Value = sdt; 

       cmd.Parameters.Add("@PatientCount", SqlDbType.Int); 
       cmd.Parameters["@PatientCount"].Value = dum; 

       cmd.Parameters.Add("@LocId", SqlDbType.VarChar, 2); 
       cmd.Parameters["@LocId"].Value = dummmy; 

       cmd.Parameters.Add("@Remark", SqlDbType.VarChar, 100); 
       cmd.Parameters["@Remark"].Value = dummmy; 


       cmd.CommandType = CommandType.Text; 

       cmd.Parameters.Clear(); 
       string result = cmd.ExecuteNonQuery().ToString(); 

      } 
      catch (Exception ex) 
      { 

      } 
      finally 
      { 
       con.Close(); 
      } 
     } 
    } 

    } 
+0

不是一個答案,而是一個附註。考慮數據庫使用的實體框架。 – Sandy

+0

被拋出某種異常? –

+0

你能告訴我們什麼是例外嗎? – polin

回答

0

您必須承諾在交易的變化,並在cosider transaction.Rollback();catch

我想你是transaction.Commit();cmd.ExecuteNonQuery();

 try 
     { 
      con.Open(); 
      transaction = con.BeginTransaction(); 
      cmd = new SqlCommand(cmdString, con, transaction); 

      cmd.Parameters.AddWithValue("@PatientID", p.HospitalNo); 
      // Continue your usual work 
      cmd.Parameters.AddWithValue("@Remark", dummmy); 

      cmd.CommandType = CommandType.Text; 
      cmd.ExecuteNonQuery(); 
      transaction.Commit(); 
      cmd.Parameters.Clear(); 
     } 
     catch (Exception ex) 
     { 
      transaction.Rollback(); 
     } 
     finally 
     { 
      con.Close(); 
     } 

類似的東西上面的代碼應該爲你工作。

希望它有幫助。

1

cmd.ExecuteNonQuery()

移動cmd.Parameters.Clear();嘗試只cmd.ExecuteNonQuery()

另請注意,如果您的isValidIntfalse,您的查詢將不會執行。因此,請首先檢查您的isValidInt是否爲真。更好的你改變你的邏輯

0

執行在Server Management Studio中下面的代碼....

GRANT INSERT ON [dbo].[Patient_Data] TO public 

希望工程......

0

1)確保連接字符串有效。

2)如果關閉並打開sql server management studio,數據庫將被切換到「master」,您必須將控件更改爲數據庫。您可以在sql editor工具欄中看到一個下拉框可以選擇當前查詢應執行的數據庫。