C#编写代码,有关sql插入问题

ZY0424 2016-05-25 03:11:59
填写相关信息后,输入的数据无法插入到数据库中。房间状态也没有显示入住。
代码如下:
private void button3_Click(object sender, EventArgs e)
{

if (nametexbox.Text == "" || Guestcombox.Text == "" || sexcombox.Text == "" || Popernum.Text == "" || Papercombox.Text == "" || renshu.Text == "" || money.Text == "" || admincombox.Text == "" || day.Text == "" || address.Text == "" || mareak.Text == "")
{
MessageBox.Show("所填内容不得为空!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else if (Convert.ToDouble(this.money.Text) < Convert.ToDouble(this.foregift.Text))//当押金不足时;
{
MessageBox.Show("押金不够,请重新填写!","警告", MessageBoxButtons.OK);
}
else if (this.dataGridView2.Rows.Count == 0)
{
MessageBox.Show("所选房间不得为空!","警告", MessageBoxButtons.OK);

}
else
{
double m = Convert.ToDouble(this.money.Text);//实收押金
double f = Convert.ToDouble(this.foregift.Text);//应收押金
int xuan=0;
if(tixing.Checked==true)
{
xuan=1;//表示要提醒;
}
if (flag == false)//表示不是从预定中来的;
{
for (int i = 0; i < this.dataGridView2.Rows.Count; i++)
{
string roomnum = this.dataGridView2[0, i].Value.ToString();//取得当前房间的房间名;
/***********取得房间的类型号**********/
SqlDataReader da = dd.ReturnDataReader("select * from roominfo where room_num='" + roomnum + "'");
da.Read();
string roomtypenum = da.GetString(2).ToString();//取得房间的类型号;
da.Close();
/************取得房间类型***************/
SqlDataReader de = dd.ReturnDataReader("select * from roomtype where pk='" + Convert.ToInt32(roomtypenum) + "'");
de.Read();
string roomtype = de.GetString(2).ToString();
de.Close();
/***********取得客户的类型号**************/
SqlDataReader dc = dd.ReturnDataReader("select * from clienttype where client_type='" + this.Guestcombox.Text + "' and dis_attr='" + roomtype + "'");
dc.Read();
string zhe = dc.GetDouble(4).ToString();//取得的打折扣数;
//MessageBox.Show(zhe);

string shimoney = dc.GetDouble(6).ToString();//取得的打折后的消费金额;
string yingmoney = dc.GetDouble(5).ToString();//取得的应收单价;
string pk = dc.GetInt32(0).ToString();//取得的客户号;
dc.Close();
/*******************************************zb*/
double qian = Convert.ToDouble(shimoney);//取得实际钱数;
double yinqian = Convert.ToDouble(yingmoney);//取得应收钱数;
double qian2 = Convert.ToDouble(money.Text);//取得押金数;

}
MessageBox.Show("客户-'" + this.nametexbox.Text + "'-的入住信息操作完成!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
this.Close();
}
else//表示此页面是从预定中来的
{
for (int i = 0; i < dk.Rows.Count; i++)
{
int k = dd.insertioto("update roominfo set state='" + "可用" + "',statetime='" + " " + "' where room_num='" + dk.Rows[i][4].ToString() + "'");//将它的值重新换为空;
int y = dd.Updatabase("update destine set delmark='" + 1 + "' where room_no='" + dk.Rows[i][4].ToString() + "'");//删除预定表中的东西;
}
for (int i = 0; i < this.dataGridView2.Rows.Count; i++)
{
string roomnum = this.dataGridView2[0, i].Value.ToString();//取得当前房间的房间名;
/***********取得房间的类型号**********/
SqlDataReader da = dd.ReturnDataReader("select * from roominfo where room_num='" + roomnum + "'");
da.Read();
string roomtypenum = da.GetString(2).ToString();//取得房间的类型号;
da.Close();
/************取得房间类型***************/
SqlDataReader de = dd.ReturnDataReader("select * from roomtype where pk='" + Convert.ToInt32(roomtypenum) + "'");
de.Read();
string roomtype = de.GetString(2).ToString();
de.Close();
/***********取得客户的类型号**************/
SqlDataReader dc = dd.ReturnDataReader("select * from clienttype where client_type='" + this.Guestcombox.Text + "' and dis_attr='" + roomtype + "'");
dc.Read();
string zhe = dc.GetDouble(4).ToString();//取得的打折扣数;
string shimoney = dc.GetDouble(6).ToString();//取得的打折后的消费金额;
string yingmoney = dc.GetDouble(5).ToString();//取得的应收单价;
string pk = dc.GetInt32(0).ToString();//取得的客户号;
dc.Close();
/*******************************************zb*/
double qian = Convert.ToDouble(shimoney);//取得实际钱数;
double yinqian = Convert.ToDouble(yingmoney);//取得应收钱数;
double qian2 = Convert.ToDouble(money.Text);//取得押金数;
int z = dd.insertioto("insert into livein values ('" + roomnum + "','" + roomtypenum + "','" + this.admincombox.Text + "','" + this.Guestcombox.Text + "','" + pk + "','" + this.nametexbox.Text + "','" + this.sexcombox.Text + "','" + this.Papercombox.Text + "','" + this.Popernum.Text + "','" + this.address.Text + "','" + this.renshu.Text + "','" + "N" + "','" + DateTime.Now.ToString() + "','" + this.day.Text + "','" + zhe + "','" + zhongqian + "','" + qian + "','" + qian2 + "','" + "*" + "','" + "*" + "','" + this.mareak.Text + "','" + this.username + "','" + xuan + "','" + "已用" + "','" + 1 + "','" + 0 + "','" + " " + "','" + " " + "')");
int r = dd.Updatabase("update roominfo set state='" + "已用" + "' where room_num='" + roomnum + "'");
}
MessageBox.Show("客户-'" + this.nametexbox.Text + "'-的入住信息操作完成!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
this.Close();

}
}
}
#endregion
...全文
129 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
南天空 2016-05-26
  • 打赏
  • 举报
回复
真累,dd是哪来的?你怎么看你大部分都是查询代码?插入代码呢? 最后那一大堆实在是难看,你完全可以写一个类封装一下 public class RoomData { public int RoonNo{get;set;} ....... } 然后将数据保存到类的实例中再往数据库中插入,你这样一旦需要修改或者添加信息,累死你。 按你说的,就是插入没成功呗,插入函数的地方打上断点,单步跟踪一下,看看值是什么,插入函数有没有正确执行
清江堤畔 2016-05-26
  • 打赏
  • 举报
回复
dd.insertioto 是什么东东? 有没有出错提示? SQL 拼接得也太难看了。例如'" + roomnum + "' 不就是 roomnum.ToString(),应该用参数化或用实体。
Justin-Liu 2016-05-26
  • 打赏
  • 举报
回复
会debug么?
YC2436 2016-05-26
  • 打赏
  • 举报
回复
看了这么久,我竟然没看懂。。。是我技术不足么?还是你代码太乱

111,128

社区成员

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

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

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