这是我第一次使用面向对象的C#到数据库,因此我尝试使用参数化的SQL-Query登录我的CRM系统。查询检查文本框的“用户名”和“密码”是否与数据库中的任何记录匹配,如果匹配,则填充DataTable仅用于测试目的,以查看是否发生任何事情但是没有发生,Da一直是空的
这里应该将文本从文本框发送到参数化查询然后再发送到“查询执行方法”的代码
private void bLoggaIn_Click(object sender, EventArgs e)
{
string sql = "SELECT * FROM Anvandare WHERE anvandarnamn = @anvandarnamn AND losenord = @losenord";
SqlCommand sqlCmd = new SqlCommand(sql);
sqlCmd.Parameters.AddWithValue("@anvandarnamn", tbAnvandarnamn.Text.Trim().ToString());
sqlCmd.Parameters.AddWithValue("@losenord", tbLosenord.Text.Trim().ToString());
clsDB.ReadFromDatabase(sqlCmd);
}
这是应该对数据库执行查询然后如果没有匹配则返回0的方法,如果匹配则返回1,但是现在,它只填充匹配的DataTable
记录,仅用于测试但不起作用,DataTable
始终为空,这意味着它没有找到任何匹配。
public static void ReadFromDatabase(SqlCommand sqlCmd)
{
try
{
if (!(anslutning.State == ConnectionState.Open))
anslutning.Open();
sqlCmd.Connection = anslutning;
SqlDataAdapter sqlDa = new SqlDataAdapter();
sqlDa.SelectCommand = sqlCmd;
DataTable dt = new DataTable();
sqlDa.Fill(dt);
anslutning.Close();
}
catch (SqlException undantag)
{
string felmeddelande = undantag.Message;
}
}
那么为什么它不起作用?我不明白它应该工作还是我错过了什么?
答案 0 :(得分:2)