将文本框中的文本插入数据库

时间:2013-12-11 10:02:20

标签: c# asp.net sql

我正在尝试将用户输入的值/文本从文本框添加到我的数据库中。

目前我无法获取将值插入sqldatabase的代码。

这是我的aspx代码

<asp:TextBox ID="txt_WineName" runat="server" PlaceHolder="WineName" />
<asp:TextBox ID="txt_WineYear" runat="server" PlaceHolder="WineYear" />
<asp:TextBox ID="txt_WinePrice" runat="server" PlaceHolder="WinePrice" />
<asp:TextBox ID="txt_WineType" runat="server" PlaceHolder="WineType" />
<asp:Button ID="btn_AddWine" runat="server" Text="Add" />

这是我的C#代码:

protected void btn_AddWine(object sender, EventArgs e)
{
    using (SqlConnection connection = new SqlConnection("Data Source=PCM13812;Initial Catalog=Kronhjorten;Integrated Security=True"))
    {
        connection.Open();
        string query = "SELECT * FROM Wines";
        using (SqlCommand command = new SqlCommand(query, connection))
        { 
            using (SqlDataReader reader = command.ExecuteReader())
            {
                while (reader.Read()) 
                {
                    string Name = txt_WineName.Text;
                    string Year = txt_WineYear.Text;
                    string Price = txt_WinePrice.Text;
                    string Type = txt_WineType.Text;
                    Sql_Insert.Insert();
                }
            }
        }
    }
}

我尝试了stackoverflow中的其他链接,但似乎无法找到任何可以使其工作的内容。

希望你能帮助我。如果我以一种奇怪的方式这样做,我很抱歉。

2 个答案:

答案 0 :(得分:5)

正确的命令:

首先,您使用的是SqlDataReader。这不用于将数据插入数据库,而是用于从中读取数据。您必须执行正在使用的SqlCommand

string query = "YOUR_QUERY_HERE";

using (SqlConnection connection = new SqlConnection("Data Source=PCM13812;Initial Catalog=Kronhjorten;Integrated Security=True"))
{
    using (SqlCommand command = new SqlCommand(query, connection))
    {
        connection.Open(); 
        command.ExecuteNonQuery();
    }
}

正确查询:

当你做对了,是时候写一个正确的查询了。你的开头是SELECT,这也是用于检索数据而不是插入数据。您的查询应使用INSERT,看起来应该是这样的:

string name = txt_WineName.Text;
string year = txt_WineYear.Text;
string price = txt_WinePrice.Text;
string type = txt_WineType.Text;

string query = "INSERT INTO Wines(Name, Year, Price, Type) " +
               "Values('" + name + "', '" + year + "', '" + price + "', '" + type + "')";

参数/验证:

我提供的代码仅作为演示,而不是工作代码。您应始终验证用户输入并使用参数化查询。更多信息/阅读:

答案 1 :(得分:0)

您正在使用SqlDataReader,它只是从数据库读取数据而不是插入/更新。 以下链接可以帮助您

Insert Data into database in C#

How to insert Records in Database using C# language?