我已经阅读了很多有关我的问题的教程,文章和其他内容,老实说,由于我缺乏经验,我无法扭曲这一点,所以我希望你们中的一些人可以帮助我:)
我正在开展一个项目(只是为了学习如何编程,所以它可能非常基础),但我有一个“新闻”页面,我可以使用GridView
更新和删除数据。
现在我想使用3个文本框和1个提交按钮将某些内容插入到我的数据库中。
我有3行必须插入:
从连接字符串存储在NyhedTB下:BoligStjernenConnectionString
我的查询如下:
INSERT INTO [NyhedTB] ([NyhedDato], [NyhedTitel], [NyhedTekst])
VALUES (@NyhedDato, @NyhedTitel, @NyhedTekst)
我在网上看到这段代码对我来说应该是神奇的(我必须插入我自己的c值)。
static void Insert()
{
try
{
string connectionString =
"server=.;" +
"initial catalog=employee;" +
"user id=sa;" +
"password=sa123";
using (SqlConnection conn =
new SqlConnection(connectionString))
{
conn.Open();
using (SqlCommand cmd =
new SqlCommand("INSERT INTO EmployeeDetails VALUES(" +
"@Id, @Name, @Address)", conn))
{
cmd.Parameters.AddWithValue("@Id", 1);
cmd.Parameters.AddWithValue("@Name", "Amal Hashim");
cmd.Parameters.AddWithValue("@Address", "Bangalore");
int rows = cmd.ExecuteNonQuery();
//rows number of record got inserted
}
}
}
catch (SqlException ex)
{
//Log exception
//Display Error message
}
}
我查看了这段代码并认为它应该很容易,但实际上,我无法弄明白。
答案 0 :(得分:1)
这是一些让你前进的建议,学习编程很多 反复试验。
从表格/页面和a开始基本的,在文本框中放置三个文本框 按钮。
双击按钮进入代码隐藏并查看按钮 点击事件。
粘贴问题中包含的代码体(try-catch中的所有内容)。
在Public Void Button_Click代码行中放置一个断点,然后按F11键 逐步完成代码。
“有一件事就是让代码隐藏起作用,但是如何使按钮和文本框工作仍然是一种痛苦”*
将文本框作为值而不是硬编码值:
cmd.Parameters.AddWithValue(“@ Address”,textBox1.Text);
您也不应该插入Id值,而是修改EmployeeDetails表并将ID列设置为属性集Identity Identification(IS Identity)= True。然后右键单击ID列并设置主键。
发布您在此处遇到的任何错误消息,当您确实让它工作时,额外的练习(对您来说非常有价值)将使用数据库存储过程而不是ad-hoc SQL来安全防范SQL - 注射攻击。
我假设您安装了SQL Server,并且拥有一个名为EmployeeDetails的“员工”数据库。
答案 1 :(得分:1)
protected void GvManualShows_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//label lbl = (label)e.Row.FindControl("lblHidden");
if (e.Row.Cells[14].Text == "Y")
{
// CheckBox cb = (CheckBox)e.Row.FindControl("chk");
CheckBox chk = (CheckBox)e.Row.Cells[0].FindControl("chkBox");
chk.Checked = true;
}
}
}
答案 2 :(得分:0)
这很简单。您只需修改连接字符串,查询及其参数:
private void button1_Click(object sender, EventArgs e)
{
try
{
string connectionString =
"server=SQLServer;" + // SQLServer is your SQL server machine
"initial catalog=employee;" + // employee is your database
"user id=sa;" + // sa is the login to connect the database
"password=sa123"; // sa123 is the password of the login
using (SqlConnection conn =
new SqlConnection(connectionString))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand(
"INSERT INTO [NyhedTB] ([NyhedDato], [NyhedTitel], [NyhedTekst]) " +
"VALUES (@NyhedDato, @NyhedTitel, @NyhedTekst)", conn))
{
cmd.Parameters.AddWithValue("@NyhedDato", textBoxDate.Text);
cmd.Parameters.AddWithValue("@NyhedTitel", textBoxTitle.Text);
cmd.Parameters.AddWithValue("@NyhedTekst", textBoxBody.Text);
int rows = cmd.ExecuteNonQuery(); // Inserted rows number
}
}
}
catch (SqlException ex)
{
//Log exception
//Display Error message
}
}
答案 3 :(得分:0)
我根据您的要求更改了示例代码并添加了注释,希望您能够更清楚地了解最新情况:
static void Insert()
{
try
{
string connectionString =
"server=.;" +
"initial catalog=MyDatabaseName;" + //here you write database name where your NyhedTB table is
"user id=sa;" + //user name to connect to database
"password=sa123"; //password
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
using (SqlCommand cmd =
new SqlCommand("INSERT INTO NyhedTB (NyhedDato, NyhedTitel, NyhedTekst) VALUES (@NyhedDato, @NyhedTitel, @NyhedTekst)", conn))
{
//all "things" in your sql command what beggins with @
//means that it is parameter and you need to pass values for these parameters:
//For @NyhedDato parameter you set text from your textbox
cmd.Parameters.AddWithValue("@NyhedDato", txtDate.Text);
//For @NyhedTitel parameter you set text from title textbox
cmd.Parameters.AddWithValue("@NyhedTitel", txtTitle.Text);
//For @NyhedTekst parameter you set text from content textbox
cmd.Parameters.AddWithValue("@NyhedTekst", txtContent.Text);
//Execute insert command and get how many records was efected, in this case it should be rows = 1 because you inserting just one record
int rows = cmd.ExecuteNonQuery();
}
}
}
catch (SqlException ex)
{
//Log exception
//Display Error message
}
}
P.S。代码未经测试。当你说
我有3行必须插入: 标题 日期 内容/新闻本身。
实际上您的意思是想要record
fields