Form1.cs:
public Form1()
{
InitializeComponent();
}
string connStr;
public Form1(string serverInfo):this()
{
// 将节点加到TreeView中
string[] temps = serverInfo.Split('#');
// 实例名(数据库版本 - 用户)
TreeNode tnRoot = tvObjectSource.Nodes.Add(temps[0] + "(SQL Server 12.5.123 - jiangkun)" );
connStr = temps[1];
// 将数据库节点加载进来
TreeNode tnDataBase = tnRoot.Nodes.Add("数据库");
// 系统数据库和其他数据库
TreeNode tnSysDB = tnDataBase.Nodes.Add("系统数据库");
tnSysDB.Nodes.Add("master");
tnSysDB.Nodes.Add("model");
tnSysDB.Nodes.Add("msdb");
tnSysDB.Nodes.Add("tempdb");
// string connStr = @"server=.\sqlexpress;database=master;uid=sa;pwd=123;";
// 加用户数据库
using (SqlConnection conn = new SqlConnection(connStr))
{
using (SqlCommand cmd = new SqlCommand("select name, database_id from sys.databases where database_id>4;", conn))
{
conn.Open();
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
tnDataBase.Nodes.Add(reader[0].ToString());
}
}
}
}
}
LoginForm.cs:
public partial class LoginForm : Form
{
public string ServerInfo
{
get { return server + "#" + connStr; }
}
public LoginForm()
{
InitializeComponent();
}
private void LoginForm_Load(object sender, EventArgs e)
{
// 默认选中Windows身份验证,和切换验证时,启用文本框输入密码等
cmbSecurityType.SelectedIndex = 0;
ChangeEnable(false);
}
private void ChangeEnable(bool isTrue)
{
lbPwd.Enabled = isTrue;
lbUid.Enabled = isTrue;
txtUid.Enabled = isTrue;
txtPwd.Enabled = isTrue;
}
private void cmbSecurityType_SelectedIndexChanged(object sender, EventArgs e)
{
ChangeEnable(cmbSecurityType.SelectedIndex == 1);
}
string server;
string connStr;
private void btnLogin_Click(object sender, EventArgs e)
{
// 设定窗体的DialogResult返回值
// 验证是否登录成功,Open
// 拼接连接字符串
server = txtServer.Text.Trim();
string database = "master";
string uid = txtUid.Text;
string pwd = txtPwd.Text;
string security = cmbSecurityType.SelectedIndex == 0 ?
"integrated security = true;"
: string.Format("uid={0};pwd={1};", uid, pwd);
connStr = string.Format("server={0}; database={1};{2}", server, database, security);
// MessageBox.Show(connStr);
using (SqlConnection conn = new SqlConnection(connStr))
{
try
{
conn.Open();
this.DialogResult = System.Windows.Forms.DialogResult.OK;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
//this.DialogResult = System.Windows.Forms.DialogResult.OK;
}
private void btnCancel_Click(object sender, EventArgs e)
{
this.DialogResult = System.Windows.Forms.DialogResult.Cancel;
}
}
Program.cs:
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
LoginForm lf = new LoginForm();
if (lf.ShowDialog() == DialogResult.OK)
{
Application.Run(new Form1(lf.ServerInfo));
}
}