我在 C# 中有这段代码:
private void sqlConnLabel()
{
NoIDPenghuni = new SqlParameter();
SqlConnection con = new SqlConnection(strCon);
com2 = new SqlCommand();
com2.Connection = con;
con.Open();
com2.CommandType = CommandType.StoredProcedure;
com2.CommandText = "label";
NoIDPenghuni.SqlDbType = SqlDbType.VarChar;
NoIDPenghuni.Size = 50;
NoIDPenghuni.ParameterName = "@NoIDPenghuni";
NoIDPenghuni.Value = NoIDPenghuniC;
NoIDPenghuni.Direction = ParameterDirection.Input;
com2.Parameters.Add(NoIDPenghuni);
string NamaPenghuni;
string JKPenghuni;
string NoTelpPenghuni;
string AlamatPenghuni;
string NoKamar;
NamaPenghuni = Convert.ToString(com2.ExecuteScalar());
JKPenghuni = Convert.ToString(com2.ExecuteScalar());
NoTelpPenghuni = Convert.ToString(com2.ExecuteScalar());
AlamatPenghuni = Convert.ToString(com2.ExecuteScalar());
NoKamar = Convert.ToString(com2.ExecuteScalar());
SqlDataReader reader = com2.ExecuteReader();
while (reader.Read())
{
NamaPenghuni = reader["NamaPenghuni"] == DBNull.Value ? null : (string)reader["NamaPenghuni"];
JKPenghuni = reader["JKPenghuni"] == DBNull.Value ? null : (string)reader["JKPenghuni"];
NoTelpPenghuni = reader["NoTelpPenghuni"] == DBNull.Value ? null : (string)reader["NoTelpPenghuni"];
AlamatPenghuni = reader["AlamatPenghuni"] == DBNull.Value ? null : (string)reader["AlamatPenghuni"];
NoKamar = reader["NoKamar"] == DBNull.Value ? null : (string)reader["NoKamar"];
}
label9.Text = NoIDPenghuniC;
label8.Text = NamaPenghuni;
if (JKPenghuni == "P")
label7.Text = "Male";
else
label7.Text = "Female";
label6.Text = NoTelpPenghuni;
label18.Text = AlamatPenghuni;
label5.Text = NoKamar;
con.Close();
}
当我尝试运行时,它一直在告诉我
IndexOutOfRangeException 未处理。
我认为数据不会被提取到我的 C# 中。它只需要'NamaPenghuni'
例如:如果我取NoIDPenghuni='110801101的数据,NamaPenghuni 应该是Priska Hapsari,JKPenghuni 应该是W,NoTelpPenghuni 应该是08567711332,AlamatPenghuni 应该是Jl。Mega Cinere No. 29,Cinere。
但在我的本地人部分,我可以看到所有这些字符串变量值都是 Priska Hapsari。
我做错了什么?