我想了3种方法来创建一个命令并执行它。
public bool UserisExist(string username, string password)
{
using (SqlConnection connection = new SqlConnection(@"Data Source=(LocalDB)\...\Database.mdf;Integrated Security=True"))
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = "select Count(*)from UsersTable where Name='" + username + "' AND Password ='" + password + "'";
cmd.Connection = connection;
connection.Open();
int x = Convert.ToInt32(cmd.ExecuteScalar());
connection.Close();
UserManager.ClientID = GetClientID(username);
return (x > 0);
}
}
}
public int GetClientID(string username)
{
using (SqlConnection connection = new SqlConnection(@"Data Source=(LocalDB)\...\Database.mdf;Integrated Security=True"))
{
using (SqlCommand cmd = new SqlCommand())
{
try
{
cmd.CommandText = "Select UserID from UserInfoTable Where UserName ='" + username + "'";
cmd.Connection = connection;
connection.Open();
rdr = cmd.ExecuteReader();
if (rdr.HasRows)
{
rdr.Read(); // read first row
var userId = rdr.GetInt32(0);
return userId;
}
else
return -1;
}
catch
{
return -1;
}
}
}
}
public bool ExecuteScalarScalar(string command)
{
using (SqlConnection connection = new SqlConnection(@"Data Source=(LocalDB)\...\ Security=True"))
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = command;
cmd.Connection = connection;
connection.Open();
int x = Convert.ToInt32(cmd.ExecuteScalar());
return (x > 0);
}
}
}
或者3)像第二个but一样,方法作为参数but接收,拆分为
(string tableName,string conditionColumn,string conditionValue,string columnToGet)
这样做的正确方法是什么?由于某种原因,第三个看起来不对,但我不知道为什么。
首先,您应该使用参数来避免SQL注入。我可以推荐您使用以下模式来执行Sql查询:
var username = "testUser";
var password = "1234";
using (var con = new SqlConnection("ConString"))
{
con.Open();
using (var cmd = con.CreateCommand())
{
cmd.CommandText = "select Count(*)from UsersTable where Name = @username AND Password = @password";
cmd.Parameters.Add(new SqlParameter("@username", username));
cmd.Parameters.Add(new SqlParameter("@password", password));
int count = (int)cmd.ExecuteScalar();
}
}
它易于阅读,您可以重用command对象,并且在需要的时候打开所有的东西,在不再需要的时候关闭所有的东西。
问题内容: 相当基本的sql命令。只想从我正在遍历的不同表中获取计数。但是,如果我更改sqlCommand并添加“;” 最后我得到异常,SQL命令未正确结束。 我很好奇为什么分号会引发此异常,因为命令应该以“;”结尾 问题答案: 半冒号通常仅用作sqlplus等交互式工具的命令终止符。
我遇到了一个甲骨文错误, ORA-00933:SQL命令未正确结束 有以下几点。 我在每个语句末尾的“/”前面加了分号。 有什么建议我可能错了吗?
本文向大家介绍Powershell创建数组正确、更快的方法,包括了Powershell创建数组正确、更快的方法的使用技巧和注意事项,需要的朋友参考一下 通常当新的对象添加到一个数组中,根据经验你最担心其性能问题。下面第一个例子将告诉你一个错误的操作方法: 在这个循环中,这个数组通过符号“+=”增加了许多新的对象。这样做会需要很长时间,因为在你改变其大小时Powershell每次需要去创造一个新的数
我尝试在Spring Boot应用程序中配置apache kafka。我阅读了这篇文档,并按照以下步骤操作: 1)我将以下行添加到: 2)我创建新主题:
我正在处理一个数据库,我用AutoCloseabe的extends创建了一个名为Dao的公共接口,所以我有一个实现这个接口的类,但我想在那里创建一些私有方法,但它们仍然需要Autocloseable。所以我的问题是,我不能在接口中创建私有方法而不在接口中定义它们。如果我在类中创建一个私有方法,但不从DAO重写,就会发生这种情况?他们不会有自动关闭的,是吗?。如果没有,我可以实现哪种解决方案?
有了这句话: 为什么会出现这个错误: 第1行出错: ORA-00933:SQL命令未正确结束从站点按长度排序(城市)选择城市,长度(城市),其中ROWNUM=1