1、 用The SQL .NET Data Provider连接数据库
vb连接数据库_VB连接数据库多表查询数据
vb连接数据库_VB连接数据库多表查询数据
vb连接数据库_VB连接数据库多表查询数据
The SQL .NET Data Provider是利用SqlConnection类来连接SQL 7.0或更高版本的数据库,
连接代码:
Dim sqlConnection1 As Sql.SqlConnection
Dim strConnect As String=”data source=名;initial catalog=数据库名;user id=sa;password=;”
sqlConnection1=New System.Data.Sql.SqlConnection(strConnect)
sqlConnection1.open ‘打开数据库
sqlConnection1.close ‘关闭连接,释放资源
2、 用The OLE DB .NET Data Provider连接数据库
上面已经说过,利用The OLE DB .NET Data Provider可以访问Access、Oracle和SQL 等种数据
库,那么,它是怎样访问这些数据库的呢?The OLE DB .NET Data Provider是通过位于名称空间Sy
stem.Data.OleDb类库下的OleDbConnection类来连接这三种不同类型的数据库的。下面举例说明:
1)连接SQL 数据库
Dim strConnect As Sting=”Provider=SQLOLEDB;Persist Security Info=False;Data Source=名;Initial Catalog=数据库名;User ID=sa;Password=;”
oleDbConnection1=New System.Data.OleDb.OleDbConnection(strConnect)
2)连接Access数据库
设要连接的Access数据库名为“Example.mdb”,存放在d:Data目录下。
Dim strConnect As Sting=”Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:Data Example.mdb”
oleDbConnection1= New System.Data.OleDb.OleDbConnection(strConnect)
3)连接Oracle数据库
Dim strConnect As Sting=”Provider=MSDAORA;Data Source=名;User ID=用户ID;Password=密码;”
oleDbConnection1= New System.Data.OleDb.OleDbConnection(strConnect)
3、 用The ODBC .NET Data Provider连接数据库
The ODBC .NET Data Provider连接数据库是通过OdbcConnection类来实现的,这个类位于名称空间
Microsoft.Data.Odbc下,而名称空间Microsoft.Data.Odbc是封装在Microsoft.Data.Odbc.dll文件下的。
由于篇幅有限,这里就只介绍连接Sql 和Oracle数据库的方法,其他数据库的连接方法基本类
似,我就不再多讲了。
1)连接Sql 数据库
Dim odbcDbConnetion1 As Microsoft.Data.OdbcConnection
Dim strConnect As Sting=”Driver={SQL };=名;Uid=sa;pwd=;Database= 数据库名;”
2)连接Oracle数据库
Dim odbcDbConnetion1 As Microsoft.Data.OdbcConnection
Dim strConnect As Sting=”Driver={Microsoft ODBC for Oracle};=名;Uid=sa;pwd=;”
四、总结
通过本文的介绍,读者基本掌握了在Visual Basic.NET中用ADO.NET和ODBC.NET连接各种数据库的方法
。以上三种驱动针对不同的数据库,它们的性能方面也有很大的不同:The SQL .NET Data Provider
的效率;The OLE DB .NET Data Provider的效率比较底;The ODBC .NET Data Provider的效率最慢。
具体连接哪一种数据库选用哪一种数据驱动要从工作效率方面来考虑。
Option Explicit
Dim conn As ADODB.Connection
Private Sub Command1_Click()
On Error Resume Next
conn.Open
MsgBox conn.State
Private Sub Form_Load()
Set conn = New ADODB.Connection
conn.CursorLocation = adUse
conn.ConnectionString = ""
如果conn.state 返回值为0,数据库这样就不要远程登录到才能进行数据库作了。连接失败,为1连接成功
利用ADO访问Oracle数据库:
End Subcn.Open "DRIVER={Microsoft ODBC for Oracle};=Oracle.world;Uid=用户名;Pwd=密码"
这个问题应该是驱动问题,你使用的是低版本的驱动了,既然你已经升级了系统的access数据库,同样你的驱动也应该改变一下,你试试如下方法:
If1、改变你的驱动连接字符串,比如:
Connectstring = "Provider=Microsoft.ACE.OLEDB.12.0;Persist Security Info=False;Data Source=" & App.Path & "datayzcl.mdb"2、降低你的系统数据库(不过这种方式可能于你不合适)
Private Sub Command3_Click()
Adodc1.RecordSource = "select from 信息表"
Set DataGrid1.D打开方法对应了几个常数,具体哪几个可以从对象浏览器里看。ataSource = Adodc1.Recordset
1·绑定数据源来进行连接
2.用代码连接
先到数据库建立一个数据库和相应的表
连接数据库的代码:
Dim str As String = "Data Source=名;Initial Catalog=数据库名;Persist Security Info=True;User ID=;Password="
dim conn As Sql.SqlConnection
try
conn = New SqlClieEnd Ifnt.SqlConnection
conn.ConnectionString = str
conn.Open()
Return True
Catch ex As Exception
MsgBox(ex.ToString)
Return False
登录代码:Dim str As String = "Data Source=名;Initial Catalog=数据库名;Persist Security Info=True;User ID=;Password="
dim conn As Sql.SqlConnection
conn = New Sql.SqlConnection
conn.ConnectionString = str
conn.Open()
sqlstr = "Select From Amd Where AmdName='" & TextBox1.Text & "' And AmdPwd = '" & TextBox2.Text & "'"
Dim sqlcmd As Sql.SqlCommand = New Sql.SqlCommand(sqlstr, conn)
Dim dr As Sql.SqlDataReader
dr = sqlcmd.ExecuteReader
If dr.Read = True Then '判断一条记录为真
kf.Show() '显示下个窗体
Me.Hide() ’隐藏当前窗体
Else
MessageBox.Show("输入信息有误!", "提示")
TextBox1.Text = ""
TextBox2.Text = ""
给你一个函数 直接调用就行了,
Public Conn As String = "server=;database=数据库名;uid=账号;pwd=密码"
Public connection As Sql.SqlConnection
Public Function DBopen() As Boolean '打开数据库
Try
connection = New Sql.SqlConnection
connection.ConnectionString = Conn
connection.Open()
Return True
Catch ex As Exception
MsgBox(ex.ToString)
Return False
End Function
调用 Call DBopen()就可以啦
登录代码 吧加码加入到button 中。自己分析代码建立表字段
Dim sqlstr As String
If TextBox1.Text = "" And TextBox2.Text <> "" Then
MsgBox("您还没有输入账号哦!", , "提示!")
ElseIf TextBox1.Text <> "" And TextBox2.Text = "" Then
MsgBox("您还没有输入密码!", , "提示!")
ElseIf TextBox1.Text = "" And TextBox2.Text = "" Then
MsgBox("请输入账号密码!", , "提示!")
Else
Call DBopen() 'sqlstr = "select from admin where username=@name and password=@pwd"
sqlstr = "select from Waa_YuanGong where Name='" & Trim(TextBox1.Text) & "'and pass='" & Trim(TextBox2.Text) & "'" '我创建一个SQLDataAdapter对象
Dim da As New SqlDataAdapter(sqlstr, connection) '创建一个DataSet才对象
Dim ds As New DataSet() 'connection.Open()
t = ds.Tables(0)
If ds.Tables(0).Rows.Count = 0 Then 'DataSet1已填充,判断DataSet1数据集中是否有记录,如果没有报错。否则,进入 下一个界面
MsgBox("你输入的帐号或密码有误!", , "提示")
Else
userid = t.Rows(0).Item(1).ToString
user_Pwd = t.Rows(0).Item(2).ToString
Form2.Show()
Me.Hide()
Dim Connectstringftp As String
Connectstringftp = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath() & "db1.mdb"
Dim sqlstr As String
objSqlConnection = Nothing
objSqlConnection = New OleDbConnection(Connectstringftp)
sqlstr = "select from CityName"
Dim myDS1 As New DataSet
myDS1.Clear()
YHM1 = Convert.ToString(myDS1.Tables(0).Rows(0)("CwName"))
MM1 = Convert.ToString(myDS1.Tables(0).Rows(0)("CwUserName"))
If Convert.ToString(myDS1.Tables(0).Rows(0)("CwUserPassword")) <> "" Then
JL1 = Convert.ToString(myDS1.Tables(0).Rows(0)("CwUserPassword"))
If Convert.ToString(myDS1.Tables(0).Rows(0)("CwUserPassword2")) <> "" Then
JL2 = Convert.ToString(myDS1.Tables(0).Rows(0)("CwUserPassword2"))
CheckBox1.Checked = JL1
CheckBox2.Checked = JL2
If CheckBox1.Checked = True Then
If CheckBox2.Checked = True Then
MessageBox.Show("用户名不能为空!", "系统信息", MessageBoxButtons.OK, MessageBoxIcon.Information)
Exit Sub
MessageBox.Show("密码不能为空!", "系统信息", MessageBoxButtons.OK, MessageBoxIcon.Information)
Exit Sub
Dim sqlstr As String
objSqlConnection = Nothing
objSqlConnection = New OleDbConnection(ConnectString)
sqlstr = "select from USERID where YHM='" & Trim(TextBox1.Text) & "'AND MM='" & Trim(TextBox2.Text) & "'AND BM='" & CityName & "'"
Dim myDS1 As New DataSet
myDS1.Clear()
If myDS1.Tables(0).DefaultView.Count - 1 >= 0 Then
'MsgBox(myDS1.Tables(0).DefaultView.Count)
YHM = Convert.ToString(myDS1.Tables(0).Rows(0)("YHM"))
MM = Convert.ToString(myDS1.Tables(0).Rows(0)("MM"))
BM = Convert.ToString(myDS1.Tables(0).Rows(0)("BM"))
If Trim(TextBox1.Text) <> YHM Then
MsgBox("用户名或密码错误!")
Exit Sub
ElseIf Trim(TextBox2.Text) <> MM Then
MsgBox("用户名或密码错误!")
Exit Sub
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Drawing;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.Sql;
using System.IO;
namespace UserData
{string strConn = "uid=sa;pwd=;database=tu;server=";
string errstr = null;
protected static void Main()
{}
{string query = "insert into user(username,nickname,password,email,major) values ( @username,@nickname,@password,@email,@major)";
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandText = query;
cmd.Connection = conn;
SqlParameter sp1 = new SqlParameter("@username", SqlDbType.Char, 255);
sp1.Direction = ParameterDirection.Input;
cmd.Parameters.Add(sp1);
SqlParameter sp2 = new SqlParameter("@nickname", SqlDbType.Char, 255);
sp2.Direction = ParameterDirection.Input;
cmd.Parameters.Add(sp2);
SqlParameter sp3 = new SqlParameter("@password", SqlDbType.Char, 255);
sp3.Direction = ParameterDirection.Input;
cmd.Parameters.Add(sp3);
SqlParameter sp4 = new SqlParameter("@email", SqlDbType.Char, 255);
sp4.Direction = ParameterDirection.Input;
cmd.Parameters.Add(sp4);
SqlParameter sp5 = new SqlParameter("@major", SqlDbType.Char, 255);
sp5.Direction = ParameterDirection.Input;
cmd.Parameters.Add(sp5);
sp1.Value = username;
sp2.Value = nickname;
sp3.Value = password;
sp4.Value = email;
sp5.Value = major;
try
{cmd.ExecuteNonQuery();
}catch (Exception ee)
{if (ee != null)
errstr = ee.Message;
}cmd.Dise();
conn.Close();
return errstr;
}}
}连接数据库
新建一个ASP.NET项目。将资源管理器中的数据连接拖至新建的Web Form上即可,这时自动生成了一个连接字符串如下:
this.sqlConnection1.ConnectionString = "data source=jeff;initial catalog=tyjdb;persist security =False;user id=sa;workstation id=JEFF;packet size=4096";
其中jeff为笔者的名,sa为登录名。
选取工具箱中的SqlDataAdapter并拖至该Web Form,提示时选取tyjdb的数据连接,选择使用SQL语句访问数据库,生成SQL语句时只填入SELECT FROM ADDRESS,确认完成即可。程序生成代码如下:
protected System.Data.Sql.SqlDataAdapter sqlDataAdapter1;
//存取数据库的主要类
protected System.Data.Sql.SqlCommand sqlSelectCommand1;
//SQL语句处理的类
protected System.Data.Sql.SqlConnection sqlConnection1;
//连接数据库的类
在InitializeComponent()中有如下声明:
this.sqlConnection1 = new System.Data.Sql.SqlConnection();
this.sqlSelectCommand1 = new System.Data.Sql.SqlCommand();
this.sqlDataAdapter1.SelectCommand = this.sqlSelectCommand1;
this.sqlSelectCommand1.CommandText = "SELECT name, email, age, address FROM address";
this.sqlSelectCommand1.Connection = this.sqlConnection1;
为使Table中数据能在Web Form中显示,加入一个DataGrid控件至Web Form上,并在Page_Init中加入如下语句:
sqlConnection1.Open();
//打开数据库连接
DataSet objDataset;
//新建一个放数据的DataSet
objDataset=new DataSet();
sqlDataAdapter1.Fill(objDataset, "address");
//将数据填入DataSet
//关联DataSet和DataGrid
DataGrid1.DataBind();
//绑定数据
sqlConnection1.Close();
//关闭数据库连接
编译执行后Web Form已可将数据库中数据显示在DataGrid中了。
ACCESS
的连接字符:
constr=
"Driver={Microsoft
Access
Driver
this.sqlDataAdapter1 = new System.Data.Sql.SqlDataAdapter();(.mdb)};Dbq=c:.mdb;Uid=admin;Pwd=;"
'Pwd后面填写密码即可连接
其实不难的,既然你已经会用DATAGRID ADODC1绑定数据,下一不就好办了。
填1就可以了1、首先添加,判断是否重复出现(免掉), adodc1.addnew
adodc1.rcoutset.fileds(0)="插入的数据"
.........
adodc1.update
exit sub
adodc1.rcoutset.recourtsource="recourtsource属性里面的语句"
adodc1.refresh
2.删除语句:
dim st,sql as
string
adodc1.rcoutset.recourtsource="recourtsource属性里面的语句"
st=adodc1.recoutset.fileds(0).value
adodc1.delete
3.更新语句:
adodc1.rcoutset.fileds(0)="更新过的数据"
.........
adodc1.update
exit sub
adodc1.rcoutset.recourtsource="recourtsource属性里面的语句"
adodc1.refresh ‘那些数据来源可以是文本框等,你要自己想了,其实不难的。
4、如都有判断是否语句(避免插入删除异常时),
adodc1.rcoutset.recourtsource="recourtsource属性里面的语句 where 条件"
if adodc1.rcoutset.eof=false then
msgbox"出错"
exit sub
end if '这个条件插在他们的前面就可以判断了。
ACCESS 的连接字符:
text1.textconstr= "Driver={Microsoft Access Driver (.mdb)};Dbq=c:.mdb;Uid=admin;Pwd=;" '
Pwd后面填写密码即可连接
如上所这,引用MSADO25.TLB,然后呢,把教科书说的...OLEDB4...改成如下,其它作与作MDB数据库一样,我是这么作的。
ConnString1 = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:tryaccess.accdb"
Microsoft.Jet.OLEDB.4.0不支持accdb,Microsoft.ACE.OLEDB.12.0支持accdb
用代码连接,举例如下:
adobe1可以直接连ACCESS,或用字符串连接.
Linkstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "Sys_kuaidi.mdb;Persist Security Info=False"
con.Open Linkstr
rec.Open sql, con
这个是可以用odbc数据源的
Provider=Microsoft.ACE.OLEDBTextBox1.Text = YHM1.12.0
VB与数据库连接可以使用数据库控件进行,也可以引用ADO对象,数据库控件的使用比较简单,下面我就介绍使用ADO对象进行连接,首先打开"工程-引用",选择其中的Microsoft ActiveX Data Objects 2.0 Library(2.0以上版本都可以): x0dx0aACCESS数据库名为"学生.mdb"其中有张数据库表名为"表",下面就介绍如何使用代码进行连接到数据库"学生",代码如下: x0dx0aFunction Connection() As String x0dx0a'数据库的连接字符设置 x0dx0aConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path + "学生.mdb" x0dx0aEnd Function x0dx0a数据库"学生.mdb"在当前目录下,故使用APP.Path x0dx0aPrivate Sub Form_Load() x0dx0aDim mr As New ADODB.Recordset x0dx0aDim cnn As New ADODB.Connection x0dx0aDim Sql As String x0dx0aSql="select from 表" x0dx0acnn.Open Connection '使用cnn对象打开数据库连接 x0dx0amr.Open Sql, cnn, adOpenKeyset, adLockOptimistic x0dx0a'打开数据库记录 x0dx0aIf mr.eof then x0dx0amsgbox "数据库表为空!" x0dx0aelse x0dx0amsgbox "数据库表不为空!" x0dx0aend if x0dx0aset mr=nothing x0dx0a'关闭记录对象 x0dx0aset cnn=nothing x0dx0a'关闭连接对象 x0dx0aEnd Sub x0dx0aOK,程序到此,已经能成功地访问数据库了,并能打开数据库中的表
End If版权声明:本文内容由互联。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发 836084111@qq.com 邮箱删除。