C# 将Asp.net网页中的数据插入本地SQL express数据库

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的代码 我遇到的问题是,当我输入并提交数据时,表中没有任何错误和

非常新的编码,我基本上是试图创建一个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:&nbsp;&nbsp;&nbsp; 
    <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
    <br />
    Description:&nbsp;&nbsp;&nbsp;
    <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
    <br />
    Location:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <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();
}