一、Connection对象概述
Connection对象是一个连接对象,主要功能是建立与物理数据库的连接。其主要包括访问数据库的对象类,也可称为数据提供程序。
- SQL Server ,位于System.Data.SqlClient命名空间
- ODBC ,位于System.Data.Odbc命名空间
- OLEDB,位于System.Data.OleDb命名空间
- Oracle,位于System.Data.OracleClient命名空间
根据使用的数据库不同,引入不同的命名空间,然后通过命名空间中的Connection对象连接类连接数据库。例如连接SQL Server数据库,首先要通过using System.Data.SqlClient命令引用SQL Server数据提供程序,然后才可以调用空间下的SqlConnection类连接数据库。
二、连接数据库
创建一个字符串对象conn,conn是数据库连接字符串。创建SqlConnection对象传递字符串,调用SqlConnection对象的Open()方法连接数据库。通过SqlConnection对象的State属性判断数据库的连接状态。
代码格式如下
string ConStr = "server="+<服务器名称(本机服务器可以用"."代替)>+";database=" + <数据库名称> + ";uid="+<用户名(可以用"sa"代替)>+";pwd="+<密码(默认可以不填或者填写"root")>+";Trusted_Connection=True;";
SqlConnection conn = new SqlConnection(ConStr);
conn.Open();
//Trusted_Connection=True;
//没加这句话我之前一直连接不上,后来想起来安装SQL的时候给了我一个字符串"Server=localhost;Database=master;Trusted_Connection=True;"我就把这句话加到了最后就连接成功了,一直连接失败的朋友可以试一试
if (conn.State == ConnectionState.Open)
{
MessageBox.Show("连接成功");
}
示例代码
string ConStr = "server=.;database=" + textBox1.Text.Trim() + ";uid=sa;pwd=;Trusted_Connection=True;";//textBox1.Text.Trim()用于获取文本框内的字符串
SqlConnection conn = new SqlConnection(ConStr);
conn.Open();
if (conn.State == ConnectionState.Open)
{
MessageBox.Show("连接成功");
}
实际运用的时候,如果连接失败则会抛出异常,我们可以使用try-catch语句
来告诉用户连接失败。完整代码如下
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Linq.Expressions;
namespace dbtest1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
try
{
string ConStr = "server="+textBox2.Text.Trim()+";database=" + textBox1.Text.Trim() + ";uid="+textBox3.Text.Trim()+";pwd="+textBox4.Text.Trim()+";Trusted_Connection=True;";
SqlConnection conn = new SqlConnection(ConStr);
conn.Open();
if (conn.State == ConnectionState.Open)
{
label2.Text = "连接成功";
label2.Visible = true;
}
}
catch
{
MessageBox.Show("连接失败");
}
}
}
}
该代码的Form窗体
连接成功提示
连接失败提示