2016-08-16 167 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事件属性:按钮

我的猜测是,你已经失去了联系。 因此,注释掉事件响应代码并重新创建事件。 使用原来用于创建事件的相同过程。 然后,从注释掉的事件方法中剪切并粘贴您需要的注释掉的代码。从粘贴的代码中删除评论指标。 您的活动现在应该可以正常工作。

相关问题