如何解决此异常? [英] How can I resolve this exception?
本文介绍了如何解决此异常?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在运行时遇到了从未见过的异常.我不知道如何解决它.有人可以阐明可能导致这种情况的原因吗?
这是我的代码段:
I am running into an exception during runtime that I have never seen before. I''m lost as to how to resolve it. Can someone shed some light as to what might be causing this?
Here is my code segment:
SqlCeCommand code_comm_one = new SqlCeCommand("SELECT engine_code FROM vehicles WHERE make = @make AND model_name = @model AND model_year = @model_year AND engine_type = @engine_type", conn);
SqlCeCommand code_comm_two = new SqlCeCommand("SELECT transmission_code FROM vehicles WHERE make = @make AND model_name = @model AND model_year = @model_year AND engine_type = @engine_type", conn);
SqlCeCommand code_comm_three = new SqlCeCommand("SELECT abs_code FROM vehicles WHERE make = @make AND model_name = @model AND model_year = @model_year AND engine_type = @engine_type", conn);
SqlCeCommand code_comm_four = new SqlCeCommand("SELECT comm_code FROM vehicles WHERE make = @make AND model_name = @model AND model_year = @model_year AND engine_type = @engine_type", conn);
SqlCeCommand code_comm_five = new SqlCeCommand("SELECT accessory_code FROM vehicles WHERE make = @make AND model_name = @model AND model_year = @model_year AND engine_type = @engine_type", conn);
// Executing Parameterized Queries
code_comm_one.CommandType = CommandType.Text;
code_comm_one.Parameters.AddWithValue("@make", makeComboBox.SelectedItem);
code_comm_one.Parameters.AddWithValue("@model", modelComboBox.SelectedItem);
code_comm_one.Parameters.AddWithValue("@model_year", yearComboBox.SelectedItem);
code_comm_one.Parameters.AddWithValue("@engine_type", engineComboBox.SelectedItem);
code_comm_one.ExecuteNonQuery();
SqlCeDataReader code_dr_one = code_comm_one.ExecuteReader();
SqlCeDataReader code_dr_two = code_comm_two.ExecuteReader();
SqlCeDataReader code_dr_three = code_comm_three.ExecuteReader();
SqlCeDataReader code_dr_four = code_comm_four.ExecuteReader();
SqlCeDataReader code_dr_five = code_comm_five.ExecuteReader();
if (code_dr_one.Read())
{
SqlCeCommand engine_path = new SqlCeCommand("SELECT accelerator_pedal_position FROM engine WHERE engine_code = @engine_code AND engine_type = '" + engineComboBox.Text + "'", conn);
engine_path.CommandType = CommandType.Text;
engine_path.Parameters.AddWithValue("@engine_code", code_dr_one.GetString(0));
engine_path.ExecuteNonQuery();
try
{
SqlCeDataReader code_dr_one_prime = engine_path.ExecuteReader();
if(code_dr_one_prime.Read())
{
MessageBox.Show(code_dr_one_prime.GetString(0));
}
}
catch (SqlCeException ex)
{
MessageBox.Show(ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
code_comm_two.CommandType = CommandType.Text;
code_comm_two.Parameters.AddWithValue("@make", makeComboBox.SelectedItem);
code_comm_two.Parameters.AddWithValue("@model", modelComboBox.SelectedItem);
code_comm_two.Parameters.AddWithValue("@model_year", yearComboBox.SelectedItem);
code_comm_two.Parameters.AddWithValue("@engine_type", engineComboBox.SelectedItem);
code_comm_two.ExecuteNonQuery();
if (code_dr_two.Read())
{
SqlCeCommand transmission_path = new SqlCeCommand("SELECT turbine_speed_sensor FROM transmission WHERE trans_code = @trans_code AND trans_type = '" + transTypeComboBox.Text + "'", conn);
transmission_path.CommandType = CommandType.Text;
transmission_path.Parameters.AddWithValue("@trans_code", code_dr_two.GetString(0));
transmission_path.ExecuteNonQuery();
try
{
SqlCeDataReader code_dr_two_prime = transmission_path.ExecuteReader();
if (code_dr_two_prime.Read())
{
MessageBox.Show(code_dr_two_prime.GetString(0));
}
}
catch (SqlCeException ex)
{
MessageBox.Show(ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
Visual Studio拒绝if语句(if(code_dr_two.Read()).在此之前的所有内容都可以无缝运行.
感谢您的帮助.
Visual Studio is balking at the if statement (if(code_dr_two.Read()). Everything prior to that works seamlessly.
Thanks for your help.
推荐答案
您尚未设置在命令字符串中指定的任何参数:
You haven''t set any of the parameters you specified in the command string:
SqlCeCommand code_comm_two = new SqlCeCommand("SELECT transmission_code FROM vehicles WHERE make = @make AND model_name = @model AND model_year = @model_year AND engine_type = @engine_type", conn);
您已将它们设置为code_comm_one,但未将其设置为其他.您是否期望他们神奇地转移?
You have set them for code_comm_one, but not for the others. Did you expect them to magically transfer?
这篇关于如何解决此异常?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文