一个关于C#中向数据库插入数据的问题!!!!急

lihui_life 2009-04-17 10:53:52
DBHelper.connection.Open();

string sql = string.Format("insert into Student (LoginId,LoginPwd,ClassId,StudentNO,StudentName,Phone,Address,Email,Sex) values ('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}')",
txt_name.Text.Trim(), txt_pwd.Text.Trim(), int.Parse(listBox1.Text), cbo_nianji.Text, txt_name2.Text.Trim(), txt_tel.Text.Trim(), txt_add.Text.Trim(), txt_mail.Text.Trim(), sex);
SqlCommand command=new SqlCommand(sql, DBHelper.connection);
int num = command.ExecuteNonQuery();
DBHelper.connection.Close();
为什么会报SQL语句错误,但有时候又可以成功运行,,不知道怎么啦?
...全文
228 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
lihui_life 2009-04-22
  • 打赏
  • 举报
回复
你们都说错了,其实是listBox1没有TEXT属性哦
timtong 2009-04-19
  • 打赏
  • 举报
回复
关键看你报什么错
argument exception的话,检查输入
sql exception的话,时有时无检查连接
一直有,检查表设计
tang_fu 2009-04-19
  • 打赏
  • 举报
回复
int.Parse(listBox1.Text)里listBox1.Text没有去空格,

LoginId 为什么是对应的txt_name.Text.Trim(), LoginId 看起来像是int数据类型
boywangliang 2009-04-19
  • 打赏
  • 举报
回复
你调试出来一下
 把SQL语句提取放到SQl里面去执行一下就知道哪里错啦
     多调试
     
zzyzgydotnet 2009-04-19
  • 打赏
  • 举报
回复
从文本框上读数据,为什么不全部trim一下呢。
help1120 2009-04-19
  • 打赏
  • 举报
回复
wensen1232 2009-04-19
  • 打赏
  • 举报
回复
觉得你这个int.Parse(listBox1.Text),既然是转换的为int类型,
那么你的数据库里面的也应该是int类型,但是你在你的插入语句里面对应的'{2}',
就不能打单引号,把单引号删除试试。
zhujinbo 2009-04-19
  • 打赏
  • 举报
回复
写错了,不是只能执行一次。是当你对同一个属性,写入同一个数据时会出错
zhujinbo 2009-04-19
  • 打赏
  • 举报
回复
其实是很简单的,你看一下sql里面定义的字段的属性,肯定有个字段的属性是唯一的。因此你那句话只能执行一次,第二次就会出错了。
ginni215 2009-04-18
  • 打赏
  • 举报
回复
看看你插入的数据是否与表中字段的类型一致~
lpqss1 2009-04-18
  • 打赏
  • 举报
回复
程序没有问题。应该是你 数据库中表的设置问题
l450854908 2009-04-18
  • 打赏
  • 举报
回复
还有在整形上加 单引号 也可以的
l450854908 2009-04-18
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 C_tianren 的回复:]
没错,这个问题其实不复杂,但是就是很磨人!
[/Quote]
你这样做得的话 无非是转了个弯拉 !创建了个实体类而已 然后把实体类字段的值穿给他
最好是调试一下 把鼠标放到sql语句上 看看
llsen 2009-04-18
  • 打赏
  • 举报
回复
干嘛搞那么复杂,看上去乖乖的
直接用下面这种参数,还能防止注入

#region 添加数据
/// <summary>
/// 添加数据
/// </summary>
/// <param name="model">实体类</param>
/// <param name="uid">用户名</param>
public void Insert(TjynfszInfo model, string uid)
{
try
{
SqlParameter[] parameters = {
new SqlParameter("@jynfsz", SqlDbType.NVarChar),
new SqlParameter("@jydw", SqlDbType.NVarChar),
new SqlParameter("@User_PKID", SqlDbType.NVarChar,50)
};
parameters[0].Value = model.Jynfsz;
parameters[1].Value = model.Jydw;
parameters[2].Value = uid;

DbHelperSQL.RunProcedure("jynfsz_Insert", parameters);
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
诸葛非卿 2009-04-18
  • 打赏
  • 举报
回复
没错,这个问题其实不复杂,但是就是很磨人!
first_speed 2009-04-18
  • 打赏
  • 举报
回复
5楼说的应该就是你问题的所在吧
int.Parse(listBox1.Text)里listBox1.Text没有去空格,

LoginId 为什么是对应的txt_name.Text.Trim(), LoginId 看起来像是int数据类型

可以跟踪调试一下整个sql语句,看看是哪里出了问题
018 2009-04-17
  • 打赏
  • 举报
回复
检查一下int.Parse(listBox1.Text)里listBox1.Text的值是否为数字
另外检查一下数字型字段,插入的值是否为数字
lihui_life 2009-04-17
  • 打赏
  • 举报
回复
提示的是: 输入字符串的格式不正确。
018 2009-04-17
  • 打赏
  • 举报
回复
报什么错误?
lihui_life 2009-04-17
  • 打赏
  • 举报
回复
已经把整形的‘’去掉了,,可还是不行啊
加载更多回复(1)

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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