WPF Login GUI for MySql Server
本文关键字:MySql Server for GUI Login WPF | 更新日期: 2023-09-27 18:28:09
大家好,我是C#世界的新手&visualstudio2012….我在MySql&创建了几个对服务器上唯一数据库具有不同权限的用户。我想用WPF创建一个登录GUI,它将允许我在MySql服务器中创建的任何用户登录。如果不在代码中写入包含所有用户名和密码的连接字符串,这可能吗?任何帮助都将不胜感激。
这应该没有问题。您只需要为用户提供两个文本框来输入他们的用户名和密码,并在代码后面(或通过MVVM模式更好)生成连接字符串
首先,您需要一个可以调用的方法来轻松构建连接用户的字符串。这基本上可以归结为嵌入用户名和密码由用户提供为字符串。请记住,用户可以选择字符,包括在连接字符串"language"中保留。我建议你看看这两个网站:
http://www.connectionstrings.com/formating-rules-for-connection-strings/http://www.connectionstrings.com/mysql/
概述应该如何格式化字符串。我会简单地替换带有";",这是转义字符的正确方法。
class ConnectionStrings
{
private static string SERVER_ADDRESS = "127.0.0.1";
private static string DATABASE = "mydb";
private static string EscapeConnectionStringValue(string value)
{
return value.Replace(";", "'";'"");
}
public static string GetConnectionString(string username, string password)
{
var escapedUsername = EscapeConnectionStringValue(username);
var escapedPassword = EscapeConnectionStringValue(password);
var connectionString = string.Format("Server={0};Database={1};Uid={2};Pwd={3};", SERVER_ADDRESS, DATABASE, escapedUsername, escapedPassword);
return connectionString;
}
}
如果这是一个WPF应用程序,只需在Visual Studio中创建这样一个项目类型,并更改文件MainWindow.xaml,以便Window元素包含如下所示的StackPanel元素。不要更改窗口元素本身。
<Window !!!don't change anything inside the Window Element!!!>
<StackPanel>
<TextBox Name="username"></TextBox>
<PasswordBox Name="password"></PasswordBox>
<Button Name="login" Click="login_Click">Login</Button>
</StackPanel>
</Window>
最后,更改文件MainWindow.xaml.cs,使其包含将在用户单击登录按钮时执行。
private void login_Click(object sender, RoutedEventArgs e)
{
var connectionString = ConnectionStrings.GetConnectionString(username.Text, password.Password);
MessageBox.Show(connectionString);
}
在这种情况下,我只是显示一个包含刚刚构建的连接字符串的消息框。