C# 将Asp.net网页中的数据插入本地SQL express数据库
非常新的编码,我基本上是试图创建一个asp网站,将在网格中显示数据,我得到了良好的工作(足够简单),但我想能够添加它 我有一个default.aspx,其中显示了我的数据,还有一个Add.aspx,它是我的插入页面 我有4个文本框,我用它来输入数据,按下一个按钮,它会将数据插入到我运行的sql express数据库中 我正在运行,1个表1分贝,所以你可以理解我的小项目是多么简单 我运行了调试,没有问题: default.aspx的代码 我遇到的问题是,当我输入并提交数据时,表中没有任何错误和数据C# 将Asp.net网页中的数据插入本地SQL express数据库,c#,asp.net,visual-studio-2010,C#,Asp.net,Visual Studio 2010,非常新的编码,我基本上是试图创建一个asp网站,将在网格中显示数据,我得到了良好的工作(足够简单),但我想能够添加它 我有一个default.aspx,其中显示了我的数据,还有一个Add.aspx,它是我的插入页面 我有4个文本框,我用它来输入数据,按下一个按钮,它会将数据插入到我运行的sql express数据库中 我正在运行,1个表1分贝,所以你可以理解我的小项目是多么简单 我运行了调试,没有问题: default.aspx的代码 我遇到的问题是,当我输入并提交数据时,表中没有任何错误和
请帮忙,我从网上下载了大部分代码,我还在学习。您的命令文本错误。将参数传递给SqlCommand应该如下所示
string cmdText = "INSERT INTO table1 (servername, ipaddress, description, Location) " +
"VALUES (@p1, @p2, @p3, @p4)";
string conString = "Data Source= 172.17.10.89; initial catalog=database1";
using(SqlConnection cn = new SqlConnection(conString))
using(SqlCommand cmd = new SqlCommand(cmdText, cn))
{
cn.Open();
cmd.Parameters.AddWithValue("@p1",TextBox1.Text);
cmd.Parameters.AddWithValue("@p2",TextBox2.Text);
cmd.Parameters.AddWithValue("@p3",TextBox3.Text);
cmd.Parameters.AddWithValue("@p4",TextBox4.Text);
int recordsAdded = cmd.ExecuteNonQuery();
}
无法将文本框的属性文本直接传递到命令文本中。在这里,您可以设置一些占位符(我当时一般称为@p1等,但您可以更改为更精确的名称),然后为每个占位符准备SqlCommand设置的参数集合,即要存储在数据库中的值。
另外,我建议给你的文本框起一个更有意义的名字
并始终使用参数。不要使用字符串连接。它可能看起来更快,但它肯定是通往地狱之路,最后一句用粗体表示。仍然没有运气,它似乎根本没有创建到db的连接。。。没有调试错误,在@p4之后也有);我假设在“我是否打算编辑我的任何代码以适应那些p1、p2、p3、p4”之后应该有a)的冒号错误是的,你是对的,忘记了SqlCommand创建和连接的右括号。如果在连接到服务器时遇到问题,则应引发异常。调用此方法的代码中是否有try/catch?如果是,请不要接受异常并尝试写入收到的错误消息,如果不是,请尝试在此处添加内容以打印消息。还添加了插入记录的计数器。应该注意到一个可能的错误。连接字符串中的数据库称为
database1
,但在insert命令中,您使用该名称作为表名insert-INTO….
是否有一个名为database1
的表?database=database1和table=table1这仍然是测试阶段,我正在学习
<title></title>
</head>
<body>
<form id="form1" runat="server">
<strong>:: Add Device Details ::
<br />
<br />
<br />
</strong>
Server Name:
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<br />
IP Address:
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<br />
Description:
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
<br />
Location:
<asp:TextBox ID="TextBox4" runat="server"></asp:TextBox>
<br />
<br />
<asp:Button ID="Generate_Data" runat="server" Text="Generate Data"
onclick="Generate_Data_Click" PostBackUrl="~/Default.aspx" />
</form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
namespace Table_to_DB
{
public partial class WebForm2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Generate_Data_Click(object sender, EventArgs e)
{
SqlConnection cn = new SqlConnection("Data Source= 172.17.10.89; initial catalog=database1");
SqlCommand cmd = new SqlCommand("INSERT INTO database1 (" + " servername, ipaddress, description, Location " + ") VALUES (" + " @TextBox1.text, @TextBox2.text, @TextBox3.text, @TextBox4.text" + ")", cn);
cn.Open();
cmd.ExecuteNonQuery();
cn.Close();
}
}
}
string cmdText = "INSERT INTO table1 (servername, ipaddress, description, Location) " +
"VALUES (@p1, @p2, @p3, @p4)";
string conString = "Data Source= 172.17.10.89; initial catalog=database1";
using(SqlConnection cn = new SqlConnection(conString))
using(SqlCommand cmd = new SqlCommand(cmdText, cn))
{
cn.Open();
cmd.Parameters.AddWithValue("@p1",TextBox1.Text);
cmd.Parameters.AddWithValue("@p2",TextBox2.Text);
cmd.Parameters.AddWithValue("@p3",TextBox3.Text);
cmd.Parameters.AddWithValue("@p4",TextBox4.Text);
int recordsAdded = cmd.ExecuteNonQuery();
}