2016-07-05 63 views
0

這裏我試圖將數據保存在數據庫中。無論用戶輸入什麼數據,都必須保存在數據庫中,並且必須自己保存在頁面中。當用戶打開數據必須顯示的頁面時。在數據庫上傳數據使用C#將數據保存在數據庫中

代碼..

public static void sqlUploadContactInfoData(string[] Userdata) 
     { 
      using (SqlConnection sqlConn = DBConnection()) 
      { 
       try 
       { 
        sqlConn.Open(); 
        string spName = "sp_testSample"; //stored procedure 
        SqlCommand cmd = new SqlCommand(spName, sqlConn); 
        cmd.Parameters.AddWithValue("@CnctNum", Userdata[0].ToString()); 
        cmd.Parameters.AddWithValue("@AltCnctNum", Userdata[1].ToString()); 
        cmd.Parameters.AddWithValue("@EmerCnctNum", Userdata[2].ToString()); 
        cmd.Parameters.AddWithValue("@PrsnEmail", Userdata[3].ToString()); 
        cmd.Parameters.AddWithValue("@OfsEmail", Userdata[4].ToString()); 
        cmd.CommandType = CommandType.StoredProcedure; 
        cmd.Connection = sqlConn; 
        cmd.ExecuteNonQuery(); 
       } 
       catch (SqlException) 
       { 
        ErrorMsg("Server Error", "Server Error ! Please try again Later."); 
       } 
      } 
     } 

對於這個在SQL Server中我已經創建的存儲過程。

這裏是存儲過程的代碼,

GO // Stored Procedure 
ALTER proc [dbo].[sp_testSample] 
@CnctNum varchar(15), 
@AltCnctNum varchar(15), 
@EmerCnctNum varchar(15), 
@PrsnEmail varchar(25), 
@OfsEmail varchar(50) 

as 
    BEGIN 
     INSERT INTO Sample 
      ([Contact_Num] 
      ,[Alt_Contact_Num] 
      ,[Emr_Contact_Num] 
      ,[Per_Email] 
      ,[Ofs_Email]) 

     VALUES 
      (@CnctNum 
      ,@AltCnctNum 
      ,@EmerCnctNum 
      ,@PrsnEmail 
      ,@OfsEmail) 

    END 

Here I am assigning the values to the Button action.. 
protected void btnContactInfoSave_click(object sender, EventArgs e) 
     { 
      if (chkContactUpdate.Checked) 
      { 
       string[] ContactInfoData = new string[6]; 
       ContactInfoData[0] = GlobalVars.UserEmail; 
       ContactInfoData[1] = txtCnct.Text; 
       ContactInfoData[2] = txtAltCnct.Text; 
       ContactInfoData[3] = txtEmrCnct.Text; 
       ContactInfoData[4] = txtPrsnEmail.Text; 
       ContactInfoData[5] = txtOfsEmail.Text; 
       Utilities.sqlUploadContactInfoData(ContactInfoData); 
      } 
     } 

Here I am calling the action through button.. 

<button type="button" class="btn btn-primary" aria-label="Left Align" runat="server" onserverclick="btnContactInfoSave_click" formmethod="get"> 

When I click the "Save" button it not saving the data and it showing the error.. 
In the below code it is showing error like Null exception... 
An exception of type 'System.ArgumentNullException' occurred in System.Web.Extensions.dll but was not handled in user code 


public static void ErrorMsg(string ErrorHeading, string ErrorMsgStr) 
     { 
      string errorMsgScript = "alert('"+ErrorMsgStr+"');"; 
      ScriptManager.RegisterClientScriptBlock(null, null, ErrorHeading, errorMsgScript, true); 
     } 

在上面ERRORMSG,我得到空例外。我有調試的代碼和數據來完美的每一個領域.. 存儲過程代碼或保存操作代碼中的任何錯誤..? 當我點擊按鈕錯誤就要像這樣,

類型「System.ArgumentNullException」的異常出現在 System.Web.Extensions.dll但在用戶代碼中沒有處理

以上所有代碼中的問題是什麼?

+0

該行顯示您的錯誤信息? –

+0

ContactInfoData [0] = GlobalVars.UserEmail;'這一行返回什麼? 你在代碼中將它傳遞給'0 index',當你調用你作爲'@ CnctNum'使用它時,我猜你的'1st index'調試了,看看你在'0 index'處得到的值是多少? –

+0

用戶的電子郵件ID。只有他的電子郵件ID,他可以登錄到門戶網站,他可以更新 –

回答

0

隨着你的逝去array string6 index,並使用錯誤的順序可能是你的問題的原因,在下面的代碼替換:

cmd.Parameters.AddWithValue("@CnctNum", Userdata[1].ToString()); 
cmd.Parameters.AddWithValue("@AltCnctNum", Userdata[2].ToString()); 
cmd.Parameters.AddWithValue("@EmerCnctNum", Userdata[3].ToString()); 
cmd.Parameters.AddWithValue("@PrsnEmail", Userdata[4].ToString()); 
cmd.Parameters.AddWithValue("@OfsEmail", Userdata[5].ToString()); 
+0

謝謝Rahul ..它工作正常 –

+0

你好Kiran :) –

+0

但它只保存在數據庫中。不自己保存在頁面中。當用戶打開頁面時,我不想要空白頁面 –

0

看起來這行

ScriptManager.RegisterClientScriptBlock(null, null, ErrorHeading, errorMsgScript, true); 

您不能調用的RegisterClientScriptBlock沒有前兩個參數。它應該是這樣的:

ScriptManager.RegisterClientScriptBlock(this, this.GetType(), ErrorHeading, errorMsgScript, true);