如何将 SQL 数据添加到变量中?
How to add SQL data into variable?
如何在 C# 中将 SQL 数据添加到变量中?感谢您的帮助。
string user = textBox1.Text;
string password = textBox2.Text;
con = new SqlConnection("...");//actually, there is a connection string but because of security, I'm not sharing it with you.
com = new SqlCommand();
con.Open();
com.Connection = con;
com.CommandText = "Select*From login where username='" + textBox1.Text +
"'And sifre='" + textBox2.Text + "'";
dr = com.ExecuteReader();
if (dr.Read())
{
}
这是我的登录代码,它将打开一个新表单,但首先我应该找到它的用户名数据并将其放入一个变量中。
这里有一个要遵循的模式,将您的数据操作放在一个单独的 class 中,然后调用您的表单。这里 Login
class 可以是任何你想用所需属性调用它的东西。
public class Login
{
public int Id { get; set; }
. . .
}
模拟数据 class,这里因为使用 select *
而不是仅指定必需的列我假设第一列是主键,它可能会也可能不会根据需要调整并添加other columns/properties 到 Login
class 实例。
public class DataOperations
{
// caller validates parameters have values
public static Login DoSomething(string userName, string sifre)
{
Login login = new Login();
var selectStatement = "SELECT * FROM login WHERE username= @userName AND sifre = @sifre";
using (var cn = new SqlConnection("TODO"))
{
using (var cmd = new SqlCommand(selectStatement, cn))
{
cmd.Parameters.Add("@userName", SqlDbType.NVarChar).Value = userName;
cmd.Parameters.Add("@sifre", SqlDbType.NVarChar).Value = sifre;
cn.Open();
var reader = cmd.ExecuteReader();
if (!reader.HasRows) return login;
reader.Read();
login.Id = reader.GetInt32(0);
}
}
return login;
}
}
在你的表单中调用上面的方法
Login login = DataOperations.DoSomething("TODO", "TODO");
Karen 的代码,使用 Dapper(右键单击项目,选择管理 Nuget 包,单击浏览,输入 Dapper):
public static Login DoSomething(string userName, string sifre)
{
using var c = new SqlConnection("conn str here");
var id = c.ExecuteScalar<int?>(
"SELECT id FROM login WHERE username= @u AND sifre = @s",
new{ u = textBox1.Text, s = textBox2.Text }
);
return new Login() { Id = id ?? 0 };
}
如何在 C# 中将 SQL 数据添加到变量中?感谢您的帮助。
string user = textBox1.Text;
string password = textBox2.Text;
con = new SqlConnection("...");//actually, there is a connection string but because of security, I'm not sharing it with you.
com = new SqlCommand();
con.Open();
com.Connection = con;
com.CommandText = "Select*From login where username='" + textBox1.Text +
"'And sifre='" + textBox2.Text + "'";
dr = com.ExecuteReader();
if (dr.Read())
{
}
这是我的登录代码,它将打开一个新表单,但首先我应该找到它的用户名数据并将其放入一个变量中。
这里有一个要遵循的模式,将您的数据操作放在一个单独的 class 中,然后调用您的表单。这里 Login
class 可以是任何你想用所需属性调用它的东西。
public class Login
{
public int Id { get; set; }
. . .
}
模拟数据 class,这里因为使用 select *
而不是仅指定必需的列我假设第一列是主键,它可能会也可能不会根据需要调整并添加other columns/properties 到 Login
class 实例。
public class DataOperations
{
// caller validates parameters have values
public static Login DoSomething(string userName, string sifre)
{
Login login = new Login();
var selectStatement = "SELECT * FROM login WHERE username= @userName AND sifre = @sifre";
using (var cn = new SqlConnection("TODO"))
{
using (var cmd = new SqlCommand(selectStatement, cn))
{
cmd.Parameters.Add("@userName", SqlDbType.NVarChar).Value = userName;
cmd.Parameters.Add("@sifre", SqlDbType.NVarChar).Value = sifre;
cn.Open();
var reader = cmd.ExecuteReader();
if (!reader.HasRows) return login;
reader.Read();
login.Id = reader.GetInt32(0);
}
}
return login;
}
}
在你的表单中调用上面的方法
Login login = DataOperations.DoSomething("TODO", "TODO");
Karen 的代码,使用 Dapper(右键单击项目,选择管理 Nuget 包,单击浏览,输入 Dapper):
public static Login DoSomething(string userName, string sifre)
{
using var c = new SqlConnection("conn str here");
var id = c.ExecuteScalar<int?>(
"SELECT id FROM login WHERE username= @u AND sifre = @s",
new{ u = textBox1.Text, s = textBox2.Text }
);
return new Login() { Id = id ?? 0 };
}