关于C#向数据库中添加数据的问题

SakuraMvN 2017-06-20 03:44:26
以下是C#的代码

protected void Button1_Click(object sender, EventArgs e)
{
string name_id = TextBox1.Text;
string machine_id = TextBox2.Text;
string price = TextBox3.Text;//获取修改信息
int price_int = int.Parse(price);//转换单价的数据类型
string time= DateTime.Now.ToString();//获取当前时间
DateTime dt = Convert.ToDateTime(time);//转换时间的数据类型
//string time=DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
string str = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
SqlConnection conn = new SqlConnection(str);
SqlCommand cmd = new SqlCommand("insert into 上机记录表(学号,设备号,上机时间,单价/小时) values('"+name_id+ "','" + machine_id + "','" + dt + "'," + price_int + ")", conn);
cmd.Parameters.Add("@name_id", SqlDbType.Char, 10);/*'"+name_id+ "','" + machine_id + "','" + time + "'," + price_int + "*/
cmd.Parameters["@name_id"].Value = name_id;
cmd.Parameters.Add("@machine_id", SqlDbType.Char, 5);
cmd.Parameters["@machine_id"].Value = machine_id;
cmd.Parameters.Add("@dt", SqlDbType.DateTime);
cmd.Parameters["@dt"].Value = dt;
cmd.Parameters.Add("@price_int", SqlDbType.Int);
cmd.Parameters["@price_int"].Value = price_int;
//执行sqlcommand对象cmd
if ((name_id == "") || (machine_id == "")||(price == ""))
{
Response.Write(@"<script>alert('信息不能为空');</script>");

}
try
{
conn.Open();
int flag = cmd.ExecuteNonQuery();
if (flag == 1)
{
Response.Write(@"<script>alert('登记成功!');</script>");
}
}
catch
{
Response.Write(@"<script>alert('登记失败,请重新核对信息');</script>");
}
finally
{
conn.Close();
}
}


就是调试过程中数据全都进去了的,但是executenonquery的返回值就是为0,然后不能重新添加,请各位大神帮忙看看!!谢谢了!!
...全文
253 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zbdzjx 2017-06-20
  • 打赏
  • 举报
回复
“单价/小时”外面加上方括号“[单价/小时]”
SakuraMvN 2017-06-20
  • 打赏
  • 举报
回复
要么使用命名的sql参数替换sql中的那些非sql参数: string sqlStr = @"insert into 上机记录表(学号,设备号,上机时间,单价/小时) values(@name_id,@machine_id,@dt,@price_int)"; [/quote] 额。。那个我是注释掉的。。没有一起使用 我按照你说的改了。。还是失败哎
SakuraMvN 2017-06-20
  • 打赏
  • 举报
回复
引用 3 楼 duanzi_peng 的回复:
晕,,你的cmd中已经显示的设置values值了,没必要在cmd中增加parameter了。
那个不好意思,因为是学校要求的课程设计,之前从没搞过这个,都是临时抱佛脚。。所以很多语法都不是很懂。。
exception92 2017-06-20
  • 打赏
  • 举报
回复
晕,,你的cmd中已经显示的设置values值了,没必要在cmd中增加parameter了。
活在现实007 2017-06-20
  • 打赏
  • 举报
回复
要么直接使用字符串,不要后面的参数化代码: SqlCommand cmd = new SqlCommand("insert into 上机记录表(学号,设备号,上机时间,单价/小时) values('"+name_id+ "','" + machine_id + "','" + time+ "'," + price_int + ")", conn); ,; 要么使用命名的sql参数替换sql中的那些非sql参数: string sqlStr = @"insert into 上机记录表(学号,设备号,上机时间,单价/小时) values(@name_id,@machine_id,@dt,@price_int)";
SakuraMvN 2017-06-20
  • 打赏
  • 举报
回复
开始以为是数据类型的问题,于是将textbox里读到的数据转换了一编,就是日期类型和int类型的。但是还是不行!!

62,046

社区成员

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

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

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

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