c# - 没有行被插入到 DataTable
问题描述
尝试创建登录功能。我创建了一个类,它具有从 sql 查询填充数据表的功能,但它不起作用。没有错误只是没有数据插入。
这是我的登录功能类:
namespace GymCalculator
{
public class LoginFunction
{
public DataTable Login (string username, string pword)
{
using (SqlConnection connection = new System.Data.SqlClient.SqlConnection(ConnectionHelper.CnnVal("GymDB"))) {
string query = ("Select * from [USER] where username = '{username}' and password = '{pword}'");
SqlDataAdapter sda = new SqlDataAdapter(query, connection);
DataTable dtbl = new DataTable();
sda.Fill(dtbl);
return dtbl;
}
}
}
}
这是我调用类和函数的代码:
public partial class Login : Form
{
public Login()
{
InitializeComponent();
}
private void Loginbtn_Click(object sender, EventArgs e)
{
var LoginFunction = new LoginFunction();
var DataTable = new DataTable();
DataTable = LoginFunction.Login(Usernametxt.Text, Passwordtxt.Text);
if (DataTable.Rows.Count == 1) {
CalculatorMain calculatorMain = new CalculatorMain();
this.Hide();
calculatorMain.Show();
} else {
MessageBox.Show("You entered the wrong username or password");
}
}
}
解决方案
这是我的最终工作代码......我最终使用了一个存储过程。
{
public class LoginFunction
{
public DataTable Login (string username, string pword)
{
using (SqlConnection connection = new System.Data.SqlClient.SqlConnection(ConnectionHelper.CnnVal("GymDB")))
{
SqlCommand cmd = new SqlCommand("LoginUser", connection)
{
CommandType = CommandType.StoredProcedure
};
cmd.Parameters.AddWithValue("@USERNAME", username);
cmd.Parameters.AddWithValue("@PASSWORD", pword);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dtbl = new DataTable();
sda.Fill(dtbl);
return dtbl;
}
}
}
推荐阅读
- php - 如何在 phpunit 测试期间查看完整的警告消息?
- electron - Notification.onclick 属性在 electronjs 中不起作用
- javascript - how choice when useEffect is executed in React
- python - 加载多个数据集并在 python 中绘制它们的聪明方法?
- python - 从用户中删除角色,然后将它们添加回 Discord.py(使用 Repl.it)
- javascript - 向本地 IP 地址发出 Ajax 请求会导致违反内容安全策略
- android - getDefaultSharedPreferences(this) 在运行时生成空错误?
- python - Python:如何将字符串时间转换为十进制秒?
- python-3.x - 找到更好的方法来查找字符串中的文本包含多个相同的符号
- ip - 如何使用 Tp-link 调制解调器端口转发在不同端口上托管两个网站?