菜鸟学习C#编程之ODBC连接数据库数据源
1、选择开始-设置-控制面板-性能和维护-管理工具。

2、双击管理工具,进入可以看到ODBC数据源,如下:

3、ODBC数据管理器

4、在ODBC数据管理器中,可以添加各自类型的ODBC数据源。这里以添加SQLServer2000数据库数据源为例说明。单击添加按钮,选择SQLServer,确定。

5、进行数据库配置。

6、输入用户名和密码,均为sa.

7、可以选择更改默认的数据库

8、 配置完成,具体配置参数如下:
Microsoft SQL Server ODBC 驱动程序版本 03.85.1132
数据源名称: pubs
数据源描述: 测试数据库
Server: 172.16.0.235
数据库: pubs
语言: (Default)
翻译字符数据: Yes
日志长运行查询: No
日志驱动程序统计: No
使用集成安全机制: No
使用区域设置: No
预定义的语句选项: 在断开时删除临时存储过程
使用故障转移服务器: No
使用 ANSI 引用的标识符: Yes
使用 ANSI 的空值,填充和警告: Yes
数据加密: No

9、点击测试数据源,测试 成功。

10、
10、可以看到测试数据源多了pubs数据源。完成ODBC数据源创建工作。

1、
1、 新建工程,将其命名为“通过ODBC连接SQLServer数据库”,添加相应控件。

2、引用命名空间,创建相应代码。
1、 命名空间引用:
2、 using System;
3、 using System.Collections.Generic;
4、 using System.ComponentModel;
5、 using System.Data;
6、 using System.Drawing;
7、 using System.Linq;
8、 using System.Text;
9、 using System.Windows.Forms;
10、 //
11、 using System.Data.Odbc;
12、 using System.Data.SqlClient;
13、 using System.Reflection;
3、代码如下:
namespace 通ª¡§过yODBC连¢?接¨®SQLServer数ºy据Y库a
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
DataSet ds=new DataSet();
if (textBox1.Text == "" || textBox2.Text == "")
{
MessageBox.Show("输º?入¨?的Ì?用®?户¡ì名?或¨°者?密¨¹码?信?息¡é部?完ª¨º全¨?", "信?息¡é提¬¨¢示º?",
System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Exclamation);
}
else
{
string consqlserver = @"DSN=" + textBox1.Text;
string sql = "SELECT * FROM jobs" + textBox2.Text;
OdbcConnection con = new OdbcConnection(consqlserver);
OdbcDataAdapter da = new OdbcDataAdapter(sql, con);
try
{
da.Fill(ds);
if (ds.Tables[0].Rows.Count > 1)
{
dataGridView1.DataSource = ds.Tables[0];
}
}
catch (Exception ex)
{
throw new Exception(ex.ToString());
}
finally
{
con.Close();
con.Dispose();
da.Dispose();
}
}
}
}
}
输入信息。进行调试,报错如下。

3、点击调试,报错。进行解决。
System.Data.Odbc.OdbcException (0x80131937): ERROR [IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
在 System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode)
在 System.Data.Odbc.OdbcConnectionHandle..ctor(OdbcConnection connection, OdbcConnectionString constr, OdbcEnvironmentHandle environmentHandle)
在 System.Data.Odbc.OdbcConnectionOpen..ctor(OdbcConnection outerConnection, OdbcConnectionString connectionOptions)
在 System.Data.Odbc.OdbcConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
在 System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
在 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
在 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
在 System.Data.Odbc.OdbcConnection.Open()
在 System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
在 通过ODBC连接SQLServer数据库.Form1.button1_Click(Object sender, EventArgs e) 位置 c:\documents and settings\lys\my documents\visual studio 2010\Projects\通过ODBC连接SQLServer数据库\通过ODBC连接SQLServer数据库\Form1.cs:行号 45

4、检查调试报错的程序问题,检查发现连接字符串错误。
错误:
string consqlserver = @"DNS=" + textBox1.Text;
正确:
string consqlserver = @"DSN=" + textBox1.Text;
修改连接字符串后,再次进行调试,程序运行正常,显示如下。
