问题描述
最近在做个网吧计费系统!做到了换机的部分。。usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;namespace网吧收银系统{publicpartialclassfrmChange:Form{stringleftPC,rightPC;stringcardid;SqlConnectioncon=newSqlConnection();publicfrmChange(){InitializeComponent();}privatevoidfrmChange_Load(objectsender,EventArgse){//左边正在上机的计算机//取值leftPC=this.cboLeft.Text.ToString();rightPC=this.cboRight.Text.ToString();stringstrCon="server=.;database=NetBarDB;uid=sa;pwd=123456";con.ConnectionString=strCon;con.Open();stringsql="select*fromPCInfowherePCUse=1";SqlDataAdapteradapter=newSqlDataAdapter(sql,con);DataSetds=newDataSet();adapter.Fill(ds);if(ds.Tables[0].Rows.Count>0){//绑定数据this.cboLeft.DataSource=ds.Tables[0].DefaultView;//取需要的列this.cboLeft.DisplayMember="PCId";this.cboLeft.SelectedIndex=0;}else{this.cboLeft.Items.Add("没有正在上机的计算机!");;}//右边空闲的机子stringsql1="select*fromPCInfowherePCUse=0";SqlDataAdapteradapter1=newSqlDataAdapter(sql1,con);DataSetds1=newDataSet();adapter1.Fill(ds1);if(ds1.Tables[0].Rows.Count>0){//绑定数据this.cboRight.DataSource=ds1.Tables[0].DefaultView;//取需要的列this.cboRight.DisplayMember="PCId";this.cboRight.SelectedIndex=0;}else{this.cboLeft.Items.Add("没有空闲机器!");;}}privatevoidbtnOk_Click(objectsender,EventArgse){//如果,正在上机的机器换机状态改成0leftPC=this.cboLeft.Text.ToString();rightPC=this.cboRight.Text.ToString();SqlCommandcmd1;stringsql3=@"updatepcinfosetpcuse=0wherepcid=*"+leftPC+"*";cmd1=newSqlCommand(sql3,con);intj=cmd1.ExecuteNonQuery();if(j==0){MessageBox.Show("修改正在上机的机器失败!");return;}//空闲机器改为1SqlCommandcmd2;stringsql4=@"updatepcinfosetpcuse=1wherepcid=*"+rightPC+"*";cmd2=newSqlCommand(sql4,con);intk=cmd2.ExecuteNonQuery();if(k==0){MessageBox.Show("修改空闲机器失败!");return;}//修改历史记录表的计算机//先取值stringsql5="selectcardidfromrecordinfo";SqlCommandcmd3;cmd3=newSqlCommand(sql5,con);SqlDataReaderreader=cmd3.ExecuteReader();if(reader.Read()){cardid=reader[0].ToString();}reader.Close();stringsql6="updaterecordinfosetpcid=*"+rightPC+"*wherecardid=*"+cardid+"*";inti=cmd3.ExecuteNonQuery();if(i==0){MessageBox.Show("修改营业记录计算机失败!");}else{MessageBox.Show("换机成功!");}}}}
解决方案
解决方案二:
运行后计算机的状态可以修改,就是修改上机记录的部分没有修改过来。
解决方案三:
stringsql6="updaterecordinfosetpcid=*"+rightPC+"*wherecardid=*"+cardid+"*";把*换成单引号'