2016-07-05 3 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, я получаю Null исключение. Я отлаживаю код, и данные отлично подходят для каждого поля. Любая ошибка в хранимой процедуре или код сохранения кода. ?? при нажатии кнопки ошибка приходит, как это,

Исключение типа «System.ArgumentNullException» произошло в System.Web.Extensions.dll, но не был обработан в пользовательском коде

В чем проблема во всем коде.

+0

, какая линия показывает вам сообщение об ошибке? –

+0

Что такое 'ContactInfoData [0] = GlobalVars.UserEmail;' эта строка возвращается? Вы передаете его в индекс 0 в свой код, и при вызове uyou использует его как '@ CnctNum', который, как я полагаю, отлаживает ваш« 1-й индекс »и видит, какое значение вы получаете при индексе« 0 » –

+0

tht для идентификатор электронной почты пользователя. С помощью этого идентификатора электронной почты он может войти в портал, и он может обновить –

ответ

0

Как ваш проезжают array string с 6 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..It работает отлично –

+0

you'r welcome Kiran :) –

+0

, но он сохраняется только в базе данных. Не сохранять на странице. Я не хочу пустую страницу, когда пользователь открывает страницу –

0

Похоже, эту линию

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

Вы не можете позвонить RegisterClientScriptBlock без первых двух параметров. Это должно быть что-то вроде этого:

ScriptManager.RegisterClientScriptBlock(this, this.GetType(), ErrorHeading, errorMsgScript, true); 
Смежные вопросы