[英]C# and SQL: Selecting a row, a get a column data to a variable
所以基本上我有一個SQL Server。 我有4列。 我將在此處設計此表:
varchar varchar int varchar
account password gmlevel pics
test test 3 url
首先,我的方法檢查輸入的帳戶和密碼是否相等(登錄查詢)。
然后,我想檢查“測試”帳戶對此具有高訪問權限(gmlevel),然后將其保存到變量中。
它需要是兩個查詢。 但是gmlevel記錄對我的程序來說非常重要,並且根本不起作用。
這是我的聯系:
private void gmset ()
{
if (loggedin == true) {
try
{
using (var con2 = new SqlConnection())
{
string user = login.felhasz;
string query2 = "SELECT * FROM accounts WHERE account=@acc";
con2.ConnectionString = "connection string";
con2.Open();
var cm2 = new SqlCommand(query2, con2);
cm2.Parameters.AddWithValue("@acc", user);
SqlDataReader dr2 = cm2.ExecuteReader();
while (dr2.HasRows)
{
MessageBox.Show("ASD");
}
}
}
catch (Exception exe)
{
MessageBox.Show(exe.Message);
}
}
else {
MessageBox.Show("Failed!");
}
該代碼不包含任何可用於獲取GMLevel的內容。 我已經嘗試了很多事情,但是一天前我一直在尋找答案,但仍然沒有。
/對不起,我想問更多問題,但我越來越接近解決方案
您可以調用Read()
方法來獲取gmlevel。
嘗試這個:
int GameLevel;
while (dr2.Read())
{
int.TryParse(dr2["gmlevel"].ToString(),out GameLevel);
MessageBox.Show("ASD");
}
編輯:我懷疑控件未進入while循環。
試試看:用以下if-else
塊替換/注釋您的while
循環,然后查看結果
if(dr2.Read())
{
MessageBox.Show("Record Found");
}
else
{
MessageBox.Show("Record Not Found!!!");
}
while (dr2.HasRows)
{
Object[] output = new Object[dr2.FieldCount];
dr2.GetValues(output);
MessageBox.Show(output[2].ToString());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.