public bool UpdateDB(string sqlStr) { try { dataConnection.ConnectionString = connstr; dataConnection.Open(); command = new SqlCommand(sqlStr, dataConnection); command.ExecuteNonQuery(); dataConnection.Close(); return true; } catch (Exception ex) { MessageBox.Show(ex.Message); return false; } 是怎么实现的?
时间: 2024-02-14 15:30:36 浏览: 25
这是一个用于执行数据库更新操作的方法。它首先打开数据库连接,然后使用提供的 SQL 更新语句创建一个 SqlCommand 对象,并将其关联到打开的数据库连接。接下来,使用 ExecuteNonQuery 方法执行 SQL 语句,该方法返回受影响的行数(对于 UPDATE、INSERT 和 DELETE 操作),然后关闭数据库连接。
在 try 块中,我们尝试执行这些操作,如果出现异常,则在 catch 块中捕获并显示错误消息,并返回 false 表示更新失败。如果没有出现异常,则返回 true 表示更新成功。
请注意,这里使用了一个名为 "MessageBox" 的类来显示错误消息。这是一个在 Windows Forms 应用程序中常用的对话框类,用于显示消息框。如果你在非 Windows Forms 应用程序中使用这段代码,可能需要使用适合的方式来显示错误消息。
相关问题
using System; using System.Data; using System.Data.SqlClient; public class UserManager { private string connectionString = "YourConnectionString"; public bool AuthenticateUser(string username, string password) { bool isAuthenticated = false; using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); string query = "SELECT COUNT(*) FROM Users WHERE Username = @Username AND Password = @Password"; using (SqlCommand command = new SqlCommand(query, connection)) { command.Parameters.AddWithValue("@Username", username); command.Parameters.AddWithValue("@Password", password); int count = (int)command.ExecuteScalar(); isAuthenticated = count > 0; } } return isAuthenticated; } public string GetUserRole(string username) { string role = string.Empty; using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); string query = "SELECT RoleName FROM Roles WHERE RoleID = (SELECT RoleID FROM Users WHERE Username = @Username)"; using (SqlCommand command = new SqlCommand(query, connection)) { command.Parameters.AddWithValue("@Username", username); role = (string)command.ExecuteScalar(); } } return role; } public bool HasPermission(string roleName, string permissionName) { bool hasPermission = false; using (SqlConnection connection = new SqlConnection(connectionString))
很抱歉,我之前的回答有些问题。这里是完整的示例代码:
```csharp
using System;
using System.Data;
using System.Data.SqlClient;
public class UserManager
{
private string connectionString = "YourConnectionString";
public bool AuthenticateUser(string username, string password)
{
bool isAuthenticated = false;
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
string query = "SELECT COUNT(*) FROM Users WHERE Username = @Username AND Password = @Password";
using (SqlCommand command = new SqlCommand(query, connection))
{
command.Parameters.AddWithValue("@Username", username);
command.Parameters.AddWithValue("@Password", password);
int count = (int)command.ExecuteScalar();
isAuthenticated = count > 0;
}
}
return isAuthenticated;
}
public string GetUserRole(string username)
{
string role = string.Empty;
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
string query = "SELECT RoleName FROM Roles WHERE RoleID = (SELECT RoleID FROM Users WHERE Username = @Username)";
using (SqlCommand command = new SqlCommand(query, connection))
{
command.Parameters.AddWithValue("@Username", username);
role = (string)command.ExecuteScalar();
}
}
return role;
}
public bool HasPermission(string roleName, string permissionName)
{
bool hasPermission = false;
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
string query = "SELECT COUNT(*) FROM Permissions WHERE RoleID = (SELECT RoleID FROM Roles WHERE RoleName = @RoleName) AND PermissionName = @PermissionName";
using (SqlCommand command = new SqlCommand(query, connection))
{
command.Parameters.AddWithValue("@RoleName", roleName);
command.Parameters.AddWithValue("@PermissionName", permissionName);
int count = (int)command.ExecuteScalar();
hasPermission = count > 0;
}
}
return hasPermission;
}
}
```
请将 "YourConnectionString" 替换为您的实际数据库连接字符串。这是一个简单的用户管理类,包括身份验证、获取用户角色和检查权限的功能。您可以根据自己的需求进行修改和扩展。
希望这个示例能满足您的需求。如果还有其他问题,请随时提问!
public static bool ExecuteSql(string sql) { try { using (sc = new SqlConnection(connStr)) { sc.Open(); SqlCommand sqlCommand = new SqlCommand(sql, sc); int result = sqlCommand.ExecuteNonQuery(); if (result > 0) { return true; } else { return false; } } } catch(Exception ex) { throw ex; } finally { if (sc.State == System.Data.ConnectionState.Open) { sc.Close(); } } }
这是一段C#代码,它的作用是执行一个SQL语句并返回执行结果。具体来说,它首先创建一个SqlConnection对象,使用指定的连接字符串打开数据库连接。然后,它创建一个SqlCommand对象,使用给定的SQL语句和SqlConnection对象来执行查询,最后返回受影响的行数。如果受影响的行数大于0,它返回true,否则返回false。在这段代码的末尾,它检查SqlConnection对象的状态,如果它是打开的,它就会关闭它。如果执行过程中出现异常,它会抛出异常并向上层传递。