2016-07-05 62 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);