C#winform程序运行出现错误 15

privatevoidbutton2_Click(objectsender,EventArgse){try{con.Open();if(this.Class_Type.T... private void button2_Click(object sender, EventArgs e)
{

try
{

con.Open();
if (this.Class_Type.Text.Trim() == "头等舱")
{
sit ="select First_Class from Air where Air_ID='" + this.Air_ID.Text + "'";
price = "select First_Price from Air where Air_ID='" + this.Air_ID.Text + "'";
int a = Convert.ToInt32(sit);//出现字符串输入错误
a--;

if (a< 0)
{
MessageBox.Show("余票为0!!!");
}
else
{
string str2 = "update Air set First_Class ='" + a.ToString() + "' where Air_ID='" + this.Air_ID.Text.Trim() + "',";
}
}
else if (this.Class_Type.Text.Trim() == "经济舱")
{
sit = "select Economy_Class from Air where Air_ID='" + this.Air_ID.Text + "'";
price = "select Economy_Price from Air where Air_ID='" + this.Air_ID.Text + "'";
int a = Convert.ToInt32(sit);
a--;
if (a< 0)
{
MessageBox.Show("余票为0!!!");
}
else
{
string str2 = "update Air set Economy_Class='" + a.ToString() + "' where Air_ID='" + this.Air_ID.Text.Trim() + "',";
}
}
float c = float.Parse(price);
discount = "select Discount from Air where Air_ID='" + this.Air_ID.Text + "'";
float b = float.Parse(discount);
int d =(int)( c * b);

string str = "insert into BookMsg(User_ID,Air_ID,Air_Type,From_Add,To_Add,Air_Date,Air_Time,Class_Type)values('" + this.label12.Text.Trim() + "','" + this.Air_ID.Text.Trim() + "','" + this.Class_Type.Text.Trim() + "','" + this.From_Add2.Text.Trim() + "','" + this.From_Add2.Text.Trim() + "','" + this.To_Add2.Text.Trim() + "','" + this.Date2.Text.Trim() + "','" + this.Air_Time.Text.Trim() + "','" + this.Class_Type.Text.Trim() + "')";
adoObject.ExecuteCommand(str);
Form7 booking = new Form7();
this.Hide();
booking.Show();

}
catch (Exception e1)
{
MessageBox.Show(e1.Message);

}
finally
{
con.Close();
}
}
展开
 我来答
玄歆然5W
2012-12-24 · 超过57用户采纳过TA的回答
知道小有建树答主
回答量:152
采纳率:87%
帮助的人:50.2万
展开全部
sit ="select First_Class from Air where Air_ID='" + this.Air_ID.Text + "'";

你的意思是想记录通过这个语句返回的几条数据,但是你不能直接的强转,这样是转换不了的。
你可以写一个类 例如public int GetSqlResult(sit)

连接数据库;
用sit进行查询返回一个 int result;
return result;


然后你调用这个GetSqlResult方法 就可以得到你想要的数了;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
务恨荷0Gx461
2012-12-24
知道答主
回答量:26
采纳率:0%
帮助的人:25.2万
展开全部
从Code来看 “First_Class”是数据库的余票数量吧! 酱紫.... 声明完了sit与price后,创建Command 传入你的数据库链接与sql语句(sit、price分开查哦)进行查询 sit查询会返回你的余票数量 price会返回票价 之所以输入字符串错误 是因为 你试图将sit字符串转成Int 所以咯.. 代码不贴了 可以参考一楼的嘛 或者搜索下ado.net
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
minmu15
2012-12-23 · TA获得超过271个赞
知道小有建树答主
回答量:299
采纳率:0%
帮助的人:158万
展开全部
sit ="select First_Class from Air where Air_ID='" + this.Air_ID.Text + "'";

这是一个string,sql语句来的吧?怎么可以转成int呢?要放到sql中来执行的吧

PS:sql最好还是写成这种形式吧。
sit =string.Format("select First_Class from Air where Air_ID='{0}'", this.Air_ID.Text);
追问
我取出来的东西是别的地方输入的数字,变成int进行操作
我应该怎么去做呢??
追答
照你的代码看,你是把sit转成int来用了,但是这个sit怎么看也是sql,不是数值。
你是不是要把sit放到sql执行之后,得到一个数值,再把这个数值转成int啊?
你最好取断点一步一步来看了,具体的我也不清楚你的代码是怎么样的说。
来自:求助得到的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-12-23
展开全部
额 难道你不会F5么 童鞋 调试下 有报错提示的啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a5eb3e1
2012-12-23 · TA获得超过4448个赞
知道大有可为答主
回答量:3486
采纳率:60%
帮助的人:2656万
展开全部
sit ="select First_Class from Air where Air_ID='" + this.Air_ID.Text + "'";
string connString = "Data Source= .;Initial Catalog=……";

SqlConnection connection = new SqlConnection(connString);
SqlCommand command = new SqlCommand(sit, connection);

int a = (Int32)command.ExecuteScalar();
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式