2016-08-16 154 views
-1

我已經嘗試了很多方法來將文本框文本保存到SQL數據庫中。我只想將文本框中的一些文本保存到SQL數據庫中。我正在使用Microsoft Visual Studio 2010和C#編程語言 。 這裏是我當前的代碼:從文本框保存數據到sql數據庫asp.net C#

protected void BtnSave_Click(object sender, EventArgs e) 
    { 
     string Name = TxtFirstName.Text; 
     string Address = TxtDOB.Text; 
     string DOB = TxtDOB.Text; 
     string Occupation = TxtOccupation.Text; 
     string Home = TxtHome.Text; 
     string Work = TxtWork.Text; 
     string Mobile = TxtMobile.Text; 
     string Email = TxtEmail.Text; 
     string SportActivities = TxtSportActivities.Text; 

     using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ClientsConnectionString"].ConnectionString)) ; 
     { 
      using (SqlCommand cmd = new SqlCommand("INSERT INTO [ClientDetails] ([Name], [Address], [DOB], [Occupation], [Home], [Work], [Mobile], [Email], [SportActivities]) VALUES (@Name, @Address, @DOB, @Occupation, @Home, @Work, @Mobile, @Email, @SportActivities)")) ; 
      { 
       cmd.connection = con; 
       con.Open(); 
       cmd.Parameters.AddWithValue("@Name", TxtFirstName.Text); 
       cmd.Parameters.AddWithValue("@Address", TxtAddress.Text); 
       cmd.Parameters.AddWithValue("@DOB", TxtDOB.Text); 
       cmd.Parameters.AddWithValue("@Occupation", TxtOccupation.Text); 
       cmd.Parameters.AddWithValue("@Home", TxtHome.Text); 
       cmd.Parameters.AddWithValue("@Work", TxtWork.Text); 
       cmd.Parameters.AddWithValue("@Mobile", TxtMobile.Text); 
       cmd.Parameters.AddWithValue("@Email", TxtEmail.Text); 
       cmd.Parameters.AddWithValue("@SportActivities", TxtSportActivities.Text); 
       cmd.ExecuteNonQuery(); 
       con.close(); 
      } 
     } 
    } 

protected void Button1_Click(object sender, EventArgs e) 
 
     { 
 
      string Name = TxtFirstName.Text; 
 
      string Address = TxtDOB.Text; 
 
      string DOB = TxtDOB.Text; 
 
      string Occupation = TxtOccupation.Text; 
 
      string Home = TxtHome.Text; 
 
      string Work = TxtWork.Text; 
 
      string Mobile = TxtMobile.Text; 
 
      string Email = TxtEmail.Text; 
 
      string SportActivities = TxtSportActivities.Text; 
 

 
      SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ClientDetailsConnectionString"].ConnectionString); 
 

 
      SqlCommand cmd = new SqlCommand("INSERT INTO [ClientDetails] ([ID], [Name], [Address], [DOB], [Occupation], [Home], [Work], [Mobile], [Email], [SportActivities]) VALUES (@ID, @Name, @Address, @DOB, @Occupation, @Home, @Work, @Mobile, @Email, @SportActivities)"); 
 

 
      cmd.Connection = con; 
 
      con.Open(); 
 
      cmd.Parameters.AddWithValue("@ID", TxtID.Text); 
 
      cmd.Parameters.AddWithValue("@Name", TxtFirstName.Text); 
 
      cmd.Parameters.AddWithValue("@Address", TxtAddress.Text); 
 
      cmd.Parameters.AddWithValue("@DOB", TxtDOB.Text); 
 
      cmd.Parameters.AddWithValue("@Occupation", TxtOccupation.Text); 
 
      cmd.Parameters.AddWithValue("@Home", TxtHome.Text); 
 
      cmd.Parameters.AddWithValue("@Work", TxtWork.Text); 
 
      cmd.Parameters.AddWithValue("@Mobile", TxtMobile.Text); 
 
      cmd.Parameters.AddWithValue("@Email", TxtEmail.Text); 
 
      cmd.Parameters.AddWithValue("@SportActivities", TxtSportActivities.Text); 
 
      cmd.ExecuteNonQuery(); 
 
      con.Close(); 
 
     }

我有固定我的代碼。我所做的只是在aspx.cs文件中將'CodeBehind'更改爲CodeFile'並修復了一些小錯誤。這是我的工作代碼: 我所做的只是刪除括號,因爲代碼沒有識別'cmd'並添加了'ID'字段,因爲這是我的數據庫的主鍵,所以它必須在那裏。一切都很好。謝謝你的幫助。

+0

需要所有參數。發佈您的錯誤消息。 – Mangrio

+0

沒有錯誤消息。 –

+0

添加一個斷點來檢查天氣點擊事件是否被調用? – Mangrio

回答

1

你應該爲每個值添加參數:

@Name, @Address, @DOB, @Occupation, @Home, @Work, @Mobile, @Email, @SportActivities 

您只需爲名稱中使用cmd.Parameters.AddWithValue("@Name", SqlDbType.Text);

編輯:

有2種方式把數據提供給SQL: 1)按名稱添加參數後,它的價值:

command.Parameters.Add("@name", SqlDbType.Int); 
     command.Parameters["@name"].Value = nametextbox.text; 

2) 添加參數值爲

command.Parameters.AddWithValue("@name", nametextbox.text); 

請使用其中之一。不是混合。

編輯關於ERROR:

If you use OnClick attribute in the page's HTML view, the name is expected to be on the page script and not in the code-behind. If you want to use a handler in the code-behind, remove OnClick attribute, go to design view and double-click the button. The code-behind will open on the right function. Or you can select event handler in the button properties panel on Events tab. Or you can do it without design view whatsoever. Just go to the code-behind and add a line for registering the event-handling method for the Click event of the button: btnSignIn.Click += new EventHandler(this.btnSignIn_Click);

When you do it in the design view, this line is added to the automatically generated InitializeComponent() method.

+0

名稱是否正確? –

+0

我們如何知道。它看起來不錯。添加所有其他人並檢查。 =) – Whencesoever

+0

更改了我的代碼並添加了其他參數。還是行不通。沒有錯誤信息 –

0

點擊括號前面,一個紅色的點會出現和重新啓動的過程 enter image description here

+0

當我這樣做並運行程序 –

+0

時,沒有任何反應您的事件未被調用。雙擊設計視圖中的按鈕,看看它是哪裏 – Mangrio

+0

你是對的。它正在其他地方。現在我已經移動了代碼,並且顯示錯誤。 –

0

我想你已經失去了按下按鈕之間的聯繫事件。你可以使用屬性窗口來檢查它。

  1. 顯示包含ASP頁:按鈕
  2. 選擇ASP:按鈕
  3. 看的ASP事件屬性:按鈕

我的猜測是,你已經失去了聯繫。 因此,註釋掉事件響應代碼並重新創建事件。 使用原來用於創建事件的相同過程。 然後,從註釋掉的事件方法中剪切並粘貼您需要的註釋掉的代碼。從粘貼的代碼中刪除評論指標。 您的活動現在應該可以正常工作。

相關問題