初學.net遇到的問題:數據庫訪問連接問題 - 中國WEB開發者網絡 (http://www.webasp.net) -- 技術教程 (http://www.webasp.net/article/) --- 初學.net遇到的問題:數據庫訪問連接問題 (http://www.webasp.net/article/15/14974.htm) |
| -- 作者:未知 -- 發佈日期: 2004-11-22 |
| 錯誤一:運行代碼時出現如下錯誤:
------------------------------------------------------------------- 編譯器錯誤信息: BC30002: 未定義類型「ADOConnection」。 源錯誤: 行 11: <Script Language="VB" Runat="Server"> 行 12: Sub Button1_Click(sender As Object, E As EventArgs) 行 13: Dim cnA As ADOConnection=New ADOConnection 行 14: Dim cmA As ADOCommand=New ADOCommand 行 15: cnA.Provider="Microsoft.Jet.OLEDB.4.0" 源文件: g:\inetpub\wwwroot\WebApplication1\WebForm3.aspx 行: 13 ----------------------------------------------------------------------------- 這是因為NameSpace出錯! 使用如下: <%@ import Namespace="system.data" %> <%@ import Namespace="system.data.Oledb" %> 對應變量聲明為: dim myconn as OledbConnection dim mycommand as OledbCommand <%@ import Namespace="system.data" %> <%@ import Namespace="system.data.SqlClient" %> 對應變量聲明為: dim myconn as SqlConnection dim mycommand as SqlCommand <%@ import Namespace="system.data" %> <%@ import Namespace="system.data.ODBC" %> 對應變量聲明為: dim myconn as ODBCConnection dim mycommand as ODBCCommand 測試程序分別如下: ============================= <%@ import Namespace="system.data" %> <%@ import Namespace="system.data.Oledb" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <title>WebForm1</title> </HEAD> <BODY> <script language="vb" runat="server"> Sub Page_load(Sender As Object, E As EventArgs) dim ds as dataset dim myconn as OledbConnection dim mycommand as OledbCommand myconn=new Oledbconnection("Provider=SQLOLEDB; Data Source=(local);uid=sa; pwd=pssword; Initial Catalog=database") myconn.open() mycommand=new Oledbcommand("select * from user_info",myconn) Dim myReader As OleDbDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection) Datagrid1.DataSource =myreader Datagrid1.DataBind() End Sub </script> <P> <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR"> <FONT face="細明體"> <asp:datagrid id="DataGrid1" runat="server"></asp:datagrid></FONT> <meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE"> <meta content="JavaScript" name="vs_defaultClientScript"> <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema"> </P> </BODY> </HTML> ============================== <%@ import Namespace="system.data" %> <%@ import Namespace="system.data.SqlClient" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <title>WebForm1</title> </HEAD> <BODY> <script language="vb" runat="server"> Sub Page_load(Sender As Object, E As EventArgs) dim ds as dataset dim myconn as sqlconnection dim mycommand as SqlCommand myconn=new Sqlconnection("server=(local); uid=sa; pwd=huangfeng;database=jxjyzb") myconn.open() mycommand=new Sqlcommand("select * from user_info",myconn) Dim myReader As SqlDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection) Datagrid1.DataSource =myreader Datagrid1.DataBind() End Sub </script> <P> <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR"> <FONT face="細明體"> <asp:datagrid id="DataGrid1" runat="server"></asp:datagrid></FONT> <meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE"> <meta content="JavaScript" name="vs_defaultClientScript"> <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema"> </P> </BODY> </HTML> ============================== <%@ import Namespace="system.data" %> <%@ import Namespace="system.data.ODBC" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <title>WebForm1</title> </HEAD> <BODY> <script language="vb" runat="server"> Sub Page_load(Sender As Object, E As EventArgs) dim ds as dataset dim myconn as Odbcconnection dim mycommand as OdbcCommand myconn=new ODbcconnection("DRIVER={SQL Server};uid=yourusername;pwd=yourpassword;SERVER=(local);DATABASE=yourdatabasename") myconn.open() mycommand=new ODBCcommand("select * from user_info",myconn) Dim myReader As ODBCDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection) Datagrid1.DataSource =myreader Datagrid1.DataBind() End Sub </script> <P> <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR"> <FONT face="細明體"> <asp:datagrid id="DataGrid1" runat="server"></asp:datagrid></FONT> <meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE"> <meta content="JavaScript" name="vs_defaultClientScript"> <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema"> </P> </BODY> </HTML> ============================== 以上程序編寫各類和方法的使用可參考: http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/cpref/html/frlrfsystemdataoledboledbcommandmemberstopic.asp 注意在使用數據庫連接時,應對應使用不同種的格式字符串連接: 如果您使用憑據(用戶名和密碼)來連接到 SQL Server 數據庫,則連接字符串形式如下: Using the SQL Server .NET Data Provider: SqlConnection conn = new SqlConnection( "server=YourServer; uid=YourUserName; pwd=YourStrongPwd;" + "database=YourDatabase"); Using the OLE DB .NET Data Provider: OleDbConnection conn = new OleDbConnection( "Provider=SQLOLEDB; Data Source=YourServer;" + "uid=YourUserName; pwd=YourStrongPwd; Initial Catalog=YourDatabase"); Using the ODBC .NET Data Provider: ODBCConnection conn = new ODBCConnection( "DRIVER={SQL Server};SERVER=MyServer;uid=YourUserName; pwd=YourStrongPwd;DATABASE=northwind;"); 如果您需要連接到安裝在同一計算機上的 SQL Server 的特定實例(只在 SQL Server 2000 或以後版本中提供的功能),則連接字符串形式如下: Using the SQL Server .NET Data Provider: SqlConnection conn = new SqlConnection( "server=YourServer\Instance; uid=YourUserName; pwd=YourStrongPwd;" + "database=YourDatabase"); 如果您利用顯式憑據(用戶名和密碼)連接到 Oracle 數據庫,則連接字符串形式如下: OleDbConnection conn = new OleDbConnection( "Provider=MSDAORA; Data Source=YourDatabaseAlias;" + "User ID=YourUserName; Password=YourStrongPwd;"); 以上我查了好多網上下載的CHM幫助文件,測試源程序,都測試出現類似錯誤。仔細查閱微軟在線幫助,發現System.Date.Sql在新版本的.Net框架中已經不再使用了,這點值得新手注意。 數據安全訪問設計詳細參考如下:http://www.microsoft.com/china/msdn/library/architecture/architecture/architecturetopic/BuildSucApp/BSAAsecmod12.mspx |
| webasp.net |