关于数据插入问题提问

canylove 2008-12-24 02:05:27
protected void Button2_Click1(object sender, EventArgs e)
{
SqlCommand InsertCommand = new SqlCommand();
InsertCommand.Connection = conn;
InsertCommand.CommandType = CommandType.Text;
InsertCommand.CommandText = "insert into phone(ID,name,department,possition,internal,telephone,[in-fax],[out-fax],[e-mail]) values(" + TextBox3.Text + ",'" + TextBox4.Text + "'" +
" '" + TextBox5.Text + "', '" + TextBox1.Text + "', '" + TextBox2.Text + "', '" + TextBox6.Text + "'"+
"'" + TextBox7.Text + "', '" + TextBox8.Text + "', '" + TextBox9.Text + "' )";

conn.Open();

SqlDataReader Sdr = InsertCommand.ExecuteReader();

GridView1.DataSource = Sdr;
GridView1.DataBind();
conn.Close();
}
红色部分提示 未能使用代码sqlexception 清高手指点这段代码的错误之处 数据根本进不了数据库 谢谢。。
...全文
117 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
niitnanfeng 2008-12-24
  • 打赏
  • 举报
回复
ExecuteReader是只读,ExecuteNonQuery才可以。你自己多看看msdn
canylove 2008-12-24
  • 打赏
  • 举报
回复
无论 是 改成:InsertCommand.ExecuteNonQuery();还是改成: int i = InsertCommand.ExecuteNonQuery();
都是错误的错误的原因相同:用户代码未处理 sqlexception “” 附近有语法错误
小曦子 2008-12-24
  • 打赏
  • 举报
回复
LZ的都回答了
jiang_jiajia10 2008-12-24
  • 打赏
  • 举报
回复
给你改一下

protected void Button2_Click1(object sender, EventArgs e)
{
string strsql = "insert into phone(ID,name,department,possition,internal,telephone,[in-fax],[out-fax],[e-mail]) values(" + TextBox3.Text + ",'" + TextBox4.Text + "'" +
" '" + TextBox5.Text + "', '" + TextBox1.Text + "', '" + TextBox2.Text + "', '" + TextBox6.Text + "'"+
"'" + TextBox7.Text + "', '" + TextBox8.Text + "', '" + TextBox9.Text + "' )";
SqlCommand InsertCommand = new SqlCommand(strsql,conn);
conn.Open();
int i = InsertCommand.ExecuteNonQuery();
if(i>0)
{

}else
{
}
conn.Close();

Lcindep110 2008-12-24
  • 打赏
  • 举报
回复
楼主想要实现应该是插入数据后,再绑定吧.

protected void Button2_Click1(object sender, EventArgs e)
{
SqlCommand InsertCommand = new SqlCommand();
InsertCommand.Connection = conn;
InsertCommand.CommandType = CommandType.Text;
InsertCommand.CommandText = "insert into phone(ID,name,department,possition,internal,telephone,[in-fax],[out-fax],[e-mail]) values(" + TextBox3.Text + ",'" + TextBox4.Text + "'" +
" '" + TextBox5.Text + "', '" + TextBox1.Text + "', '" + TextBox2.Text + "', '" + TextBox6.Text + "'"+
"'" + TextBox7.Text + "', '" + TextBox8.Text + "', '" + TextBox9.Text + "' )";

conn.Open();

InsertCommand.ExecuteNonQuery();
string selectText = "select * from phone order by id desc");
SqlDataReader Sdr = new SqlDataReader(selectText, cn);
GridView1.DataSource = Sdr;
GridView1.DataBind();
conn.Close();
}
人在江湖 2008-12-24
  • 打赏
  • 举报
回复
什么错?
人在江湖 2008-12-24
  • 打赏
  • 举报
回复
直接 InsertCommand.ExecuteNonQuery();
canylove 2008-12-24
  • 打赏
  • 举报
回复
protected void Button2_Click1(object sender, EventArgs e)
{
SqlCommand InsertCommand = new SqlCommand();
InsertCommand.Connection = conn;
conn.Open();
InsertCommand.CommandType = CommandType.Text;
InsertCommand.CommandText = "insert into phone(ID,name,department,possition,internal,telephone,[in-fax],[out-fax],[e-mail]) values(" + TextBox3.Text + ",'" + TextBox4.Text + "'" +
" '" + TextBox5.Text + "', '" + TextBox1.Text + "', '" + TextBox2.Text + "', '" + TextBox6.Text + "'"+
"'" + TextBox7.Text + "', '" + TextBox8.Text + "', '" + TextBox9.Text + "' )";


InsertCommand.ExecuteNonQuery();

//GridView1.DataSource = Sdr;
// GridView1.DataBind();
conn.Close();

还是错误的
jiang_jiajia10 2008-12-24
  • 打赏
  • 举报
回复
if(i>0)
{

}else
{

}
jiang_jiajia10 2008-12-24
  • 打赏
  • 举报
回复
SqlDataReader Sdr = InsertCommand.ExecuteReader();

换了
int i =InsertCommand.ExecuteNonQuery()
zhxhdean 2008-12-24
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 canylove 的回复:]
当改为ExecuteNonQuery() 出现错误 1 无法将类型“int”隐式转换为“System.Data.SqlClient.SqlDataReader”
什么意思?
[/Quote]
你表达式中右边是SqlDataReader 类型,左边执行的结果返回的是int类型,当然就报这个错了。
你把左边的换了,用int i = 右边的就可以了
canylove 2008-12-24
  • 打赏
  • 举报
回复
当改为ExecuteNonQuery() 出现错误 1 无法将类型“int”隐式转换为“System.Data.SqlClient.SqlDataReader”
什么意思?
fxcjy 2008-12-24
  • 打赏
  • 举报
回复
楼主,你在insert的同时不能返回数据集的,必须再select才行,所以不能像你那样直接把insert的结果绑定到控件.
hongmaohouzi 2008-12-24
  • 打赏
  • 举报
回复
增加新的记录
private void Button2_Click1(object sender, EventArgs e)
{
MyConnection.Open();’打开数据库
MyCommand1.CommandText = "insert into admin values(‘aaddq‘,‘as‘,‘ss‘)";
MyCommand1.Connection = MyConnection;
MyCommand1.ExecuteNonQuery();’由于增加了一条记录,所以返回1
MyConnection.Close();
}
你试一下!
zealot1021 2008-12-24
  • 打赏
  • 举报
回复
查询的时候才用SqlDataReader,数据会存储在SqlDataReader的对象中,更新和插入又不需要存储数据,用ExecuteNonQuery()。
阿云ivan 2008-12-24
  • 打赏
  • 举报
回复
ExecuteNonQuery()
BernardSun 2008-12-24
  • 打赏
  • 举报
回复
insert 语句为什么用SqlDataReader了

62,269

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧