解決方法を教えてください。データが存在しますが、プログラムに「行/列のデータがありません」と表示されます
if (Convert.ToInt32(rd["B_Quan"].ToString()) > 3)
{
MessageBox.Show("Oops sobra tama na ");
}
cn.Close();
解決方法を教えてください。データが存在しますが、プログラムに「行/列のデータがありません」と表示されます
if (Convert.ToInt32(rd["B_Quan"].ToString()) > 3)
{
MessageBox.Show("Oops sobra tama na ");
}
cn.Close();
行/列のいずれかが存在しないか、nullが含まれています。あなたがNullReferenceException
を受け取ることになります。その場合には null
は、関数に.ToString()
を持っていないので、あなたはこれをチェックできます。
if (rd.Table.Columns.Contains("B_Quan") && rd["B_Quan"] != null)
{
if (Convert.ToInt32(rd["B_Quan"].ToString()) > 3)
{
MessageBox.Show("Oops sobra tama na ");
}
}
cn.Close();
これは何をしますか?
using (DataTable dt = new DataTable())
{
dt.Load(rd);
Console.WriteLine(dt.Rows.Count);
}
if (Convert.ToInt32(rd["B_Quan"].ToString()) > 3)
{
MessageBox.Show("Oops sobra tama na ");
}
デバッグ中にdt
を開き、テーブルを表示できますか? "B_Quan"という名前の列を持っていればいいですか?
'rd ['B_Quan']'がnullを返すことを保証しているので、 'SqlDataReader.Read()'が実行されるまでではない –
Leonelが編集履歴があることを指摘するまで、あなたのコードに 'SqlDataReader'はありませんでした。あなたはしました。あなたはそれを試しましたか?もしそれがヌルになることを保証すれば、 '&& rd [" B_Quan "]!= null'はそれを捕まえるでしょう。 – DerpyNerd
'SqlDataReader.Read()'を実行しないと、 'rd [" B_Quan "]'はデータを取得しないため、無意味です。データがあってもカラム内のデータを取ることができないからですその中に...私はそれを試してみたいです。 –
質問でコードを削除する理由がわかりません。
この質問のために、私はあなたのコードを編集履歴からコピーしました。
「データが存在しません」がコードに含まれている理由は、まだSqlDataReader.Read()
を使用していないためです。詳細は、SqlDataReader Classを参照してください。
サンプル:
while(rd.Read()) // You need to read first to get your data.
{
if (Convert.ToInt32(rd["B_Quan"].ToString()) > 3)
{
MessageBox.Show("Oops sobra tama na ");
}
}
次のコード:
private void button3_Click(object sender, EventArgs e)
{
if (cn.State == ConnectionState.Closed)
{
cn.Open();
}
string student = "Select * From tbl_student";
OleDbCommand loadstudent = new OleDbCommand(student, cn);
loadstudent.Parameters.AddWithValue("@SId", textBox8.Text + "%");
rd = loadstudent.ExecuteReader();
if (rd.HasRows == true)
{
// ipapalabas ung labas
while (rd.Read())
{
messageBox.Show("Oops sobra tama na ");
}
}
else
{
MessageBox.Show("No record(s) found.");
}
cn.Close();
if (cn.State == ConnectionState.Closed)
{
cn.Open();
}
string s = "Select * From Borrow";
OleDbCommand sa = new OleDbCommand(s, cn);
loadstudent.Parameters.AddWithValue("@SId", textBox8.Text + "%");
rd = sa.ExecuteReader();
while(rd.Read()) // You need to read first to get your data.
{
if (Convert.ToInt32(rd["B_Quan"].ToString()) > 3)
{
MessageBox.Show("Oops sobra tama na ");
}
}
cn.Close();
if (cn.State == ConnectionState.Closed) cn.Open();
cmd = new OleDbCommand("Select * From Borrow", cn);
rd = cmd.ExecuteReader();// ipapalitaw
if (rd.HasRows == true)
{
// ipapalabas ung labas
while (rd.Read())
{
if (Convert.ToInt32(rd["B_Quan"].ToString()) > 3)
{
MessageBox.Show("Oops sobra tama na ");
return;
}
}
}
}
申し訳ありません。あなたの助けてくれてありがとう@LeonelSarmiento – Bajongjong
エラーは何ですか? –
[良い質問をする方法] – 3615
あなたは何が起こっているのか、何が起こっているのか、何が起きているのか、あなたがこれまでに行ってきた診断や診断があります。 https://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/ –