【发布时间】:2012-11-14 01:10:35
【问题描述】:
这里有个小问题: 我有一个组合框,它从数据库中的列中获取它的值,我用它来将数据输入回数据库中的另一个地方 喜欢
comboBox2.DataSource = ds1.Tables[0];
comboBox2.DisplayMember = "DoctorName";
comboBox2.ValueMember = "DoctorCode";
comboBox2.BindingContext = this.BindingContext;
这用医生的名字填充组合框,值将是医生的代码 那么
SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=c:\users\administrator\documents\visual studio 2010\Projects\Clinic\Clinic\Clinc.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
con.Open();
SqlCommand cmd1 = new SqlCommand("SELECT Doctors.DoctorCode, Doctors.DoctorName, SessionReservations.SessionCode, SessionReservations.PatientCode, SessionReservations.ExaminationCode, SessionReservations.DoctorCode AS Expr1, SessionReservations.SessionMonth, SessionReservations.SessionYear FROM Doctors INNER JOIN SessionReservations ON Doctors.DoctorCode = SessionReservations.DoctorCode WHERE (Doctors.DoctorCode = @DoctorCode) AND (SessionReservations.SessionMonth = @month) AND (SessionReservations.SessionYear = @year)", con);
SqlDataAdapter da2 = new SqlDataAdapter(cmd1);
DataSet ds2 = new DataSet();
try
{
da2.InsertCommand.Parameters.Add("@DoctorCode", SqlDbType.Int).Value = Convert.ToInt32(comboBox2.SelectedValue);
da2.InsertCommand.Parameters.Add("@month", SqlDbType.Int).Value = comboBox1.SelectedValue;
da2.InsertCommand.Parameters.Add("@year", SqlDbType.Int).Value = textBox2.Text;
da2.Fill(ds2);
cmd1.ExecuteReader();
con.Close();
}
此代码用于选择特定行,并且 select 语句在 sql manager 中正常工作 但是在运行时它会给出错误
"System.NullReferenceException: 对象引用未设置为 对象的实例。在 Clinic.DoctorMoneyCall.button1_Click(Object sender, EventArgs e) in C:\Users\Administrator\documents\visual studio 2010\Projects\Clinic\Clinic\DoctorMoneyCall.cs:45 行
我只是不明白出了什么问题
【问题讨论】:
-
@fenonoga - 这只是一个空引用问题。这不是运行 SQL 查询所独有的。
-
尝试调试,看看你的复选框和文本框是否有任何值可以作为参数传递
-
@MarcGravell 第 45 行是它添加医生代码的地方 da2.InsertCommand.Parameters.Add("@DoctorCode", SqlDbType.Int).Value = Convert.ToInt32(comboBox2.SelectedValue);跨度>
标签: c# sql sql-server database select