实例介绍
【实例简介】
【实例截图】
【核心代码】
/*
* Created by SharpDevelop.
* User: Administrator
* Date: 2014/5/21
* Time: 10:12
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Data;
using System.Data.SqlClient;
using System.Threading;
using System.Windows.Forms;
namespace SqlConnectionStringBuilder
{
/// <summary>
/// Description of MainForm.
/// </summary>
public partial class MainForm : Form
{
private System.Data.SqlClient.SqlConnectionStringBuilder sqlConnStr = new System.Data.SqlClient.SqlConnectionStringBuilder() { DataSource = "(local)", IntegratedSecurity = true };
private SqlConnection cn;
private DataTable dt;
private bool isLanguageConnected = false;
private bool isDatabaseNameConnected = false;
public MainForm()
{
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();
//
// TODO: Add constructor code after the InitializeComponent() call.
//
}
void MainFormLoad(object sender, EventArgs e)
{
//cmbNetworkLibrary.SelectedIndex=0;
//cmbSizeUnit.SelectedIndex=0;
//cmbTimeUnit.SelectedIndex=0;
txtConnectionString.Text = sqlConnStr.ConnectionString ";";
}
void BtnExitClick(object sender, EventArgs e)
{
Application.Exit();
}
void BtnCopyClick(object sender, EventArgs e)
{
string connString = txtConnectionString.Text.Trim();
if (connString != string.Empty)
{
Clipboard.SetText(connString);
if (Clipboard.ContainsText())
MessageBox.Show("已经复制连接字符串到剪贴板!");
}
}
void BtnTestClick(object sender, EventArgs e)
{
Form form = MainForm.ActiveForm;
form.Enabled = false;
Thread testConn = new Thread(TestConnection);
testConn.Start();
btnTest.Text = "连接测试中";
testConn.Join();
form.Enabled = true;
btnTest.Text = "测试连接";
form.Show();
}
void TestConnection()
{
try
{
cn = new SqlConnection(sqlConnStr.ConnectionString);
cn.Open();
cn.Close();
MessageBox.Show("连接数据库成功!", "测试连接", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show("连接数据库失败!" ex.ToString(), "测试连接", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
void ChkIntegratedCheckedChanged(object sender, EventArgs e)
{
txtUserID.Enabled = !chkIntegrated.Checked;
txtPassword.Enabled = !chkIntegrated.Checked;
if (chkIntegrated.Checked)
{
sqlConnStr.Remove("User ID");
sqlConnStr.Remove("Password");
sqlConnStr.IntegratedSecurity = true;
}
else
{
sqlConnStr.Remove("Integrated Security");
string UserID = txtUserID.Text.Trim();
string Password = txtPassword.Text.Trim();
if (UserID != string.Empty)
sqlConnStr.UserID = UserID;
if (Password != string.Empty)
sqlConnStr.Password = Password;
}
txtConnectionString.Text = sqlConnStr.ConnectionString ";";
isDatabaseNameConnected = false;
isLanguageConnected = false;
}
void CmbNetworkLibrarySelectedIndexChanged(object sender, EventArgs e)
{
switch (cmbNetworkLibrary.Text.Trim())
{
case "TCP/IP":
sqlConnStr.Remove("Network Library");
break;
case "Shared Memory":
sqlConnStr.NetworkLibrary = "dbmslpcn";
break;
case "Named Pipes":
sqlConnStr.NetworkLibrary = "dbnmpntw";
break;
case "Multiprotocol":
sqlConnStr.NetworkLibrary = "dbmsrpcn";
break;
case "Apple Talk":
sqlConnStr.NetworkLibrary = "dbmsadsn";
break;
case "VIA":
sqlConnStr.NetworkLibrary = "dbmsgnet";
break;
case "IPX/SPX":
sqlConnStr.NetworkLibrary = "dbmsspxn";
break;
}
txtConnectionString.Text = sqlConnStr.ConnectionString ";";
}
void CmbSizeUnitSelectedIndexChanged(object sender, EventArgs e)
{
TxtPacketSizeTextChanged(sender, e);
}
void CmbTimeUnitSelectedIndexChanged(object sender, EventArgs e)
{
TxtTimeOutTextChanged(sender, e);
}
void TxtDataSourceTextChanged(object sender, EventArgs e)
{
sqlConnStr.DataSource = txtDataSource.Text.Trim();
if (sqlConnStr.DataSource == string.Empty)
sqlConnStr.Remove("Data Source");
txtConnectionString.Text = sqlConnStr.ConnectionString ";";
isDatabaseNameConnected = false;
isLanguageConnected = false;
}
void TxtUserIDTextChanged(object sender, EventArgs e)
{
sqlConnStr.UserID = txtUserID.Text.Trim();
if (sqlConnStr.UserID == string.Empty)
sqlConnStr.Remove("User ID");
txtConnectionString.Text = sqlConnStr.ConnectionString ";";
isDatabaseNameConnected = false;
isLanguageConnected = false;
}
void TxtPasswordTextChanged(object sender, EventArgs e)
{
sqlConnStr.Password = txtPassword.Text.Trim();
if (sqlConnStr.Password == string.Empty)
sqlConnStr.Remove("Password");
txtConnectionString.Text = sqlConnStr.ConnectionString ";";
isDatabaseNameConnected = false;
isLanguageConnected = false;
}
void CmbDatabaseNameSelectedIndexChanged(object sender, EventArgs e)
{
if (cmbDatabaseName.Items.Count > 0)
{
if (cmbDatabaseName.Text == string.Empty)
sqlConnStr.Remove("Initial Catalog");
else
sqlConnStr.InitialCatalog = cmbDatabaseName.Text;
txtConnectionString.Text = sqlConnStr.ConnectionString ";";
}
}
void TxtInitialFileNameTextChanged(object sender, EventArgs e)
{
sqlConnStr.AttachDBFilename = txtInitialFileName.Text.Trim();
if (sqlConnStr.AttachDBFilename == string.Empty)
sqlConnStr.Remove("AttachDBFilename");
txtConnectionString.Text = sqlConnStr.ConnectionString ";";
}
void ChkPersistSecurityInfoCheckedChanged(object sender, EventArgs e)
{
sqlConnStr.PersistSecurityInfo = chkPersistSecurityInfo.Checked;
if (!sqlConnStr.PersistSecurityInfo)
sqlConnStr.Remove("PersistSecurityInfo");
txtConnectionString.Text = sqlConnStr.ConnectionString ";";
}
void ChkEncryptCheckedChanged(object sender, EventArgs e)
{
sqlConnStr.Encrypt = chkEncrypt.Checked;
if (!sqlConnStr.Encrypt)
sqlConnStr.Remove("Encrypt");
txtConnectionString.Text = sqlConnStr.ConnectionString ";";
}
void ChkPoolingCheckedChanged(object sender, EventArgs e)
{
sqlConnStr.Pooling = chkPooling.Checked;
if (sqlConnStr.Pooling)
sqlConnStr.Remove("Pooling");
txtConnectionString.Text = sqlConnStr.ConnectionString ";";
}
void ChkResetCheckedChanged(object sender, EventArgs e)
{
sqlConnStr.ConnectionReset = chkReset.Checked;
if (sqlConnStr.ConnectionReset)
sqlConnStr.Remove("Connection Reset");
txtConnectionString.Text = sqlConnStr.ConnectionString ";";
}
void ChkEnlistCheckedChanged(object sender, EventArgs e)
{
sqlConnStr.Enlist = chkEnlist.Checked;
if (sqlConnStr.Enlist)
sqlConnStr.Remove("Enlist");
txtConnectionString.Text = sqlConnStr.ConnectionString ";";
}
void TxtConnectionLifetimeTextChanged(object sender, EventArgs e)
{
int connectionLifetime = 0;
if (txtConnectionLifetime.Text.Length > 0)
connectionLifetime = Int32.Parse(txtConnectionLifetime.Text);
if (connectionLifetime == 0)
sqlConnStr.Remove("Load Balance Timeout");
else
sqlConnStr.LoadBalanceTimeout = connectionLifetime;
txtConnectionString.Text = sqlConnStr.ConnectionString ";";
}
void TxtConnectionLifetimeKeyPress(object sender, KeyPressEventArgs e)
{
if (!(Char.IsNumber(e.KeyChar) || e.KeyChar == '\b') || (txtConnectionLifetime.Text.Length == 2 && e.KeyChar != '\b'))
e.Handled = true;
}
void TxtMinPoolSizeTextChanged(object sender, System.EventArgs e)
{
int MinPoolSize = 0;
if (txtMinPoolSize.Text.Length > 0)
MinPoolSize = Int32.Parse(txtMinPoolSize.Text);
if (MinPoolSize == 0)
sqlConnStr.Remove("Min Pool Size");
else
sqlConnStr.MinPoolSize = MinPoolSize;
txtConnectionString.Text = sqlConnStr.ConnectionString ";";
}
void TxtMaxPoolSizeTextChanged(object sender, EventArgs e)
{
int MaxPoolSize = 0;
if (txtMaxPoolSize.Text.Length > 0)
MaxPoolSize = Int32.Parse(txtMaxPoolSize.Text);
if (MaxPoolSize == 0)
sqlConnStr.Remove("Max Pool Size");
else
sqlConnStr.MaxPoolSize = MaxPoolSize;
txtConnectionString.Text = sqlConnStr.ConnectionString ";";
}
void TxtMaxPoolSizeKeyPress(object sender, KeyPressEventArgs e)
{
if (!(Char.IsNumber(e.KeyChar) || e.KeyChar == '\b') || (txtMaxPoolSize.Text.Length == 5 && e.KeyChar != '\b'))
e.Handled = true;
}
void TxtMinPoolSizeKeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
if (!(Char.IsNumber(e.KeyChar) || e.KeyChar == '\b') || (txtMinPoolSize.Text.Length == 5 && e.KeyChar != '\b'))
e.Handled = true;
}
void TxtPacketSizeTextChanged(object sender, EventArgs e)
{
int PacketSize = 0;
if (txtPacketSize.Text.Length > 0)
{
PacketSize = Int32.Parse(txtPacketSize.Text);
if (cmbSizeUnit.Text == "KB")
PacketSize *= 1024;
if (PacketSize >= 512 && PacketSize <= 32768)
sqlConnStr.PacketSize = PacketSize;
else
PacketSize = 0;
}
if (txtPacketSize.Text.Length == 0 || PacketSize == 0 || sqlConnStr.PacketSize == 8192)
sqlConnStr.Remove("Packet Size");
txtConnectionString.Text = sqlConnStr.ConnectionString ";";
}
void TxtTimeOutTextChanged(object sender, System.EventArgs e)
{
if (txtTimeOut.Text.Length > 0)
sqlConnStr.ConnectTimeout = Int32.Parse(txtTimeOut.Text);
if (cmbTimeUnit.Text == "分钟")
sqlConnStr.ConnectTimeout *= 60;
if (txtTimeOut.Text.Length == 0 || sqlConnStr.ConnectTimeout == 0 || sqlConnStr.ConnectTimeout == 15)
sqlConnStr.Remove("ConnectTimeout");
txtConnectionString.Text = sqlConnStr.ConnectionString ";";
}
void TxtPacketSizeKeyPress(object sender, KeyPressEventArgs e)
{
if (txtPacketSize.SelectionLength == 0 && (!(Char.IsNumber(e.KeyChar) || e.KeyChar == '\b') || (txtPacketSize.Text.Length == 5 && e.KeyChar != '\b')))
e.Handled = true;
}
void TxtTimeOutKeyPress(object sender, KeyPressEventArgs e)
{
if (!(Char.IsNumber(e.KeyChar) || e.KeyChar == '\b') || (txtTimeOut.Text.Length == 2 && e.KeyChar != '\b'))
e.Handled = true;
}
void TxtWorkstationIDTextChanged(object sender, EventArgs e)
{
sqlConnStr.WorkstationID = txtWorkstationID.Text.Trim();
if (sqlConnStr.WorkstationID == string.Empty)
sqlConnStr.Remove("Workstation ID");
txtConnectionString.Text = sqlConnStr.ConnectionString ";";
}
void TxtApplicationNameTextChanged(object sender, EventArgs e)
{
sqlConnStr.ApplicationName = txtApplicationName.Text.Trim();
if (sqlConnStr.ApplicationName == string.Empty || sqlConnStr.ApplicationName == ".Net SqlClient Data Provider")
sqlConnStr.Remove("Application Name");
txtConnectionString.Text = sqlConnStr.ConnectionString ";";
}
void CmbDatabaseNameClick(object sender, EventArgs e)
{
if (!isDatabaseNameConnected)
{
try
{
Thread thDatabaseNames = new Thread(GetDatabaseNames);
thDatabaseNames.Start();
btnExit.Enabled = btnCopy.Enabled = btnTest.Enabled = false;
btnTest.Text = "连接数据库中";
thDatabaseNames.Join();
btnExit.Enabled = btnCopy.Enabled = btnTest.Enabled = true;
btnTest.Text = "测试连接";
cmbDatabaseName.DataSource = dt;
isDatabaseNameConnected = true;
}
catch (Exception)
{
MessageBox.Show("连接数据库失败!", "获取数据库", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
void GetDatabaseNames()
{
try
{
cn = new SqlConnection(sqlConnStr.ConnectionString);
cn.Open();
dt = cn.GetSchema("Databases");
cn.Close();
DataRow dr = dt.NewRow();
dt.Rows.InsertAt(dr, 0);
}
catch (Exception)
{
}
}
void CmbLanguageSelectedIndexChanged(object sender, EventArgs e)
{
if (cmbLanguage.Items.Count > 0)
{
if (cmbLanguage.Text == string.Empty)
sqlConnStr.Remove("Current Language");
else
sqlConnStr.CurrentLanguage = cmbLanguage.Text;
txtConnectionString.Text = sqlConnStr.ConnectionString ";";
}
}
void CmbLanguageClick(object sender, EventArgs e)
{
if (!isLanguageConnected)
{
try
{
Thread thDatabaseLanguages = new Thread(GetDatabaseLanguages);
thDatabaseLanguages.Start();
btnExit.Enabled = btnCopy.Enabled = btnTest.Enabled = false;
btnTest.Text = "连接数据库中";
thDatabaseLanguages.Join();
btnExit.Enabled = btnCopy.Enabled = btnTest.Enabled = true;
btnTest.Text = "测试连接";
cmbLanguage.DataSource = dt;
isLanguageConnected = true;
}
catch (Exception)
{
MessageBox.Show("连接数据库失败!", "获取数据库语言", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
void GetDatabaseLanguages()
{
try
{
cn = new SqlConnection(sqlConnStr.ConnectionString);
cn.Open();
dt = new DataTable();
new SqlDataAdapter(new SqlCommand("exec sp_helplanguage", cn)).Fill(dt);
cn.Close();
DataRow dr = dt.NewRow();
dt.Rows.InsertAt(dr, 0);
}
catch (Exception)
{
}
}
}
}
好例子网口号:伸出你的我的手 — 分享!
相关软件
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明


网友评论
我要评论