我正在尝试将用户输入的值/文本从文本框添加到我的数据库中。
目前我无法获取将值插入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中的其他链接,但似乎无法找到任何可以使其工作的内容。
希望你能帮助我。如果我以一种奇怪的方式这样做,我很抱歉。答案 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)