您的位置:首页 > 数据库

如何通过ODBC驱动代码连接Sql Server数据库--采用C#语言

2014-11-09 23:16 507 查看

ODBC连接Sql Server数据库-C#实现

利用ODBC驱动程序,可以以一种相同的语法来存取和维护数据表中的数据。为了便于在应用程序中使用ODBC,首先需要配置ODBC数据源,又称DSN,它把应用程序所要使用的驱动程序,数据库,用户名和密码等信息组合起来,供其客户端使用。
1 首先配置ODBC数据源 --- 截图来说明吧
(1)



(2)单击完成 即弹出"创建到SQL Server的新数据源"对话框,在“名称”文本框内输入DSN的名称,单击“服务器”下拉列表框,选择SQL Server服务器(注意此处的服务器即为安装数据库时的服务器 )



我自己安装数据库Sql Server2005时的服务器名称即为上图所示,以图片为例



(3) 然后单击下一步,输入登录用户名以及密码。以图为例



注意这里的登录ID与密码,需要与自己安装Sql Server2005时数据库设置的用户信息有关,我的是sa与123456
如果输入不正确的话,会有错误产生。此时应当百度查找“win7 修改sql server2005设置的用户信息”,之后会发现原来就只是在数据库中的安全性做了些需修改而已,在这 里就不赘述。
(4)单击下一步 即可进行设置默认访问数据库,在这里我建了一个数据库StudentManagementSystem,以及一个表StudentInfo,如下图所示



(5)单击下一步,就基本上完成了



在这里我对后面的两个复选框,即“将长时间运行的查询保存到日志文件”与”将ODBC驱动程序统计记录到日志文件“的保存路径以及文件名都进行了修改

(6)单击完成,会弹出ODBC数据源的描述信息,再单击”测试数据源“按钮,进行数据连接测试,之后单击确定按钮,就成功配置了ODBC数据源,即成功创建了ODBC数据 源,即创建了DSN桥梁





接下来,进行代码的链接:以上及以下都是基于 VS2010旗舰版,Sql Server2005数据库 win7 32位进行

下面采用C#代码进行测试
(1)界面简单设计如下



(2)单击"连接数据库" 与 ”退出应用程序“ 两个按钮的事件代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.Odbc;

namespace DataBaseConnectSqlServer
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void buttonCancel_Click(object sender, EventArgs e)
{
this.Close();
}

private void buttonConnectToSqlServer_Click(object sender, EventArgs e)
{
try
{
//DSN:mylink数据源的名称 UID:sql server登录时的身份sa PWD:登录时的密码123456
//生成连接数据库字符串
string ConStr = "DSN=mylink;UID=sa;PWD=123456";
//定义SqlConnection对象实例
OdbcConnection odbcCon = new OdbcConnection(ConStr);
string SqlStr = "select * from StudentInfo";

OdbcDataAdapter odbcAdapter = new OdbcDataAdapter(SqlStr, odbcCon);
DataSet ds = new DataSet();

odbcAdapter.Fill(ds);
this.dataGridView.DataSource = ds.Tables[0].DefaultView;
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}


(3)运行应用程序 点击”连接数据库“按钮出现的效果如下



至此 已经基本上完成了目的

但似乎有这样的问题:点击”连接数据库“按钮之后,会很慢,需要等很久才能出来信息,但我现在还不知道为什么?????
留着日后解答!!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: