取2个文本框值插入SQL Server数据库

时间:2012-08-31 15:32:03

标签: c# asp.net sql-server

我正在尝试学习如何获取控制值并将它们插入到db表中。例如,我有一个名为NameBox的文本框。我想从该文本框中获取文本并将其添加到数据库表中。

我不是试图以最好的方式去做,而是最简单的方式,所以我可以围绕这个概念进行包装。到目前为止,我有:

<asp:TextBox ID="NameBox" runat="server"></asp:TextBox>
<asp:TextBox ID="EmailBox" runat="server"></asp:TextBox>

这是代码隐藏。

protected void Button1_Click(object sender, EventArgs e)
{
    string name1 = NameBox.Text;
    string email1 = EmailBox.Text;

    System.Data.SqlClient.SqlConnection sqlConnection1 =
   new System.Data.SqlClient.SqlConnection(@"Data Source=E:\*********.com1.5\**********.com\App_Data\Home.sdf;");

    System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
    cmd.CommandType = System.Data.CommandType.Text;
    cmd.CommandText = "INSERT INTO CustomerList (Name, Email) VALUES (" + name1 + "," + email1 + ")";
    cmd.Connection = sqlConnection1;

    sqlConnection1.Open();
    cmd.ExecuteNonQuery();
    sqlConnection1.Close();
}

我得到的错误消息是

  

发生与网络相关或特定于实例的错误   建立与SQL Server的连接。找不到服务器或   无法访问。验证实例名称是否正确   SQL Server配置为允许远程连接。 (提供者:SQL   网络接口,错误:26 - 查找服务器/实例时出错   指定)

我用Google搜索了错误消息,我正在阅读的很多内容都说我的连接可能是错误的。我试过通过使用一些拖放控件测试这个,我有一个转发器使用相同的连接字符串。

现在我甚至不知道这是否正确。我相信你们都可以在某个方面联系起来,我希望看到它在一个非常简单的层面上工作,所以我可以开始玩它,看看它是如何真正起作用的。

4 个答案:

答案 0 :(得分:4)

您的连接字符串推断您正在使用SQL Server Compact Edition - 在这种情况下,您希望使用SQLCeCommandSQLCeConnection。还请考虑使用参数化查询而不是将字符串连接在一起 - 出于性能和安全性原因,它更好。请阅读this link以获取有关SQL注入的更多背景知识 - 此时您很容易受到攻击。

答案 1 :(得分:2)

答案 2 :(得分:0)

只需复制粘贴您用于转发器代码的连接字符串,然后将其粘贴到Button1_Click代码中,即可在其中创建新连接。可能存在额外的空间或一些大写字母不匹配。对于插入,我将在数据库中创建一个存储过程,该过程采用Name和Email参数,并使用SqlCommand执行存储过程。

CREATE PROCEDURE INSERT_NAME_EMAIL_DATA
    @NAME VARCHAR(100) NULL,
    @EMAIL VARCHAR(100) NULL
AS
BEGIN
      INSERT INTO CustomerList (Name, Email) VALUES (@NAME, @EMAIL)
END  

在您的代码中,您可以执行以下操作来执行存储过程:

cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Parameters.Add(
    new SqlParameter("@NAME", name1));
cmd.Parameters.Add(
    new SqlParameter("@EMAIL", email1));
cmd.Connection = sqlConnection1;

        sqlConnection1.Open();
        cmd.ExecuteNonQuery();
        sqlConnection1.Close();

答案 3 :(得分:0)

建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:SQL网络接口,错误:26 - 查找指定的服务器/实例时出错)

对于上面的错误,您可以通过转到服务窗口重启您的sqlserver实例,如下所示

按windows + r

输入services.msc + enter

找到你的sqlserver实例并重新启动它