用ODBC连接MySQL和ASP.NET_MySQL
ODBC
被认为是“世界上最流行的开放源代码数据库”的MySQL从最初一个毫不起眼的低成本数据库服务器成长为驱动庞大Web网站和重要商业系统的服务器经历了一个漫长的历程。但是,如果你是一位ASP.NET的开发人员,那么你总会碰到一个不如意的地方:MySQL原先是为UNIX平台上的应用程序设计的,所以对Windows的支持处于次要地位。
但是现在,Windows版本的MySQL已经具备了与UNIX版本同样的特性和稳定性,而且它被认为是用于Windows开发的可行的数据库服务器。现在让我们来看看你可以如何使用ODBC在.NET框架内连接MySQL数据库。
安装
下载和安装Windows版的MySQL。安装很简单——只用按照提示你就能够立即安装好并开始运行了。如果碰到了问题,可以去MySQL的论坛看看,寻求帮助和解决方法。
要把ASP.NET和MySQL连接起来,你需要使用ODBC.NET。一般来说,ODBC.NET的DataProvider是标准的.NET框架(1.1及以上的版本)的一部分,所以会和后者一起自动安装好。
一旦确认ODBC.NET安装完毕,你就需要下载用于MySQL的ODBC驱动程序。再强调一遍,MySQL的开发人员都很乐意提供帮助——他们都在自己的Web网站上提供了这些驱动程序。在下载文件的时候你可以看看FAQ文档,它会列出在往系统里安装MySQL ODBC驱动程序期间可能碰到的所有的问题。
都做好了?现在就让我们从一些代码开始吧。
用ASP.NET连接MySQL
我最喜欢做的一件事情是阅读,而且当我没有编写像本文一样的教学文章时,我会找一个安静的角落补全参考书目表。不幸的是,我不是一个组织性很强的人,所以这常常搞得一团糟。
那这又与我们今天要谈的话题有什么关系呢?嗯,这是我第一个例子的开场白,这个例子就是创建一个像列表A里的书籍的数据库。
要建立这个表格,就要使用下面的SQL查询:
CREATE TABLE `books` (
`id` int(5) NOT NULL auto_increment,
`title` varchar(255) NOT NULL default '',
`authors` varchar(255) NOT NULL default '',
`year_of_publication` year(4) NOT NULL default '0000',
`date_added` date NOT NULL default '0000-00-00',
PRIMARY KEY (`id`)
) TYPE=MyISAM;
而要执行这个查询,就要使用MySQL安装目录下的“bin”文件夹的命令行客户端软件“mysql.exe”。下面就是具体命令:
c:\mysql\bin>mysql -u guest -p test
Enter password: ******
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 13 to server version: 4.0.12-nt
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> CREATE TABLE `books` (
-> `id` int(5) NOT NULL auto_increment,
-> `title` varchar(255) NOT NULL default '',
-> `authors` varchar(255) NOT NULL default '',
-> `year_of_publication` year(4) NOT NULL default '0000',
-> `date_added` date NOT NULL default '0000-00-00',
-> PRIMARY KEY (`id`)
-> ) TYPE=MyISAM;
Query OK, 0 rows affected (0.02 sec)
一旦“书籍(books)”表格创建好了,就可以开始插入数据了。列表B里列举了一些项目。现在,用ASP.NET做同样的事情——执行SELECT查询(列表C)并在浏览器里显示结果。如果一切都没有问题——MySQL服务器在运行,MySQL ODBC驱动程序安装正确,“书籍”表格含有数据——你就应该会看到像图A里的页面。

现在让我们来更加仔细地看看代码列表。所有东西一开始都要调入所需要的.NET库。由于我正在使用ODBC.NET连接MySQL服务器,所以需要调用System.Data.Odbc和System.Data程序集。一旦程序集调用完毕,就要定义连接字符串,这包括修改服务器(Server)、数据库(Database)、uid和pwd变量以体现本地服务器的设置。
在创建了OdbcConnection()和OdbcCommand()对象之后,初始化本地的OdbcDataReader()对象,从“书籍”表格取回数据。这个对象提供了一条ExecuteReader()命令来执行SQL查询。剩下的就是例行公事了:将OdbcDataReader()指定为dbgooks DataGrid的数据源,并调用DataGrid()对象的DataBind()方法将两者绑定起来。
当然,你可以对数据库做更多的事情——向表格里插入(INSERT)数据、使用更新(UPDATE)修改它们、用删除(DELETE)命令获得记录的网格,或者就根据WHERE语句里面的条件选择子集。
异常的处理
现在让我们来看一些异常的处理(列表D)方法,以对付程序员经常碰到的一些无法预见的状况。正如你会注意到的,列表D使用了嵌套try-catch结构来提供多级别的错误处理。下面列出来的一段代码应该有助于你更好地理解它:
}%>
现在首先让我们看看里层的“try-catch”结构。这个结构用来处理创建OdbcCommand()或者OdbcDataReader()对象的实例时可能发生的错误。如果数据库里不存在“书籍”表格,就有可能发生这样的错误。如果发生了这样的错误,“catch”部分就会发出一个新的Exception()。里层的“try-catch”结构的“finally”块然后就会在脚本进一步执行之前关闭OdbcConnection()对象。
动作然后就转到外层的“try-catch”结构。外层的结构能够处理两种类型的异常——OdbcException()或者是一般的Exception()。前者在由于某种原因无法打开到数据库服务器的连接或者脚本无法将OdbcConnection()对象实例化的时候产生,而后者用来处理内层“try-catch”结构所产生的异常。无论发生两种情况中的哪一种,都会有一个ASP.NET标签服务器控件向用户显示相应的错误消息。
图B向你显示,当脚本尝试连接到一个不存在的数据库服务器时所发生的事情(这个由外层的“try-catch”结构来处理)。

图C向你显示的错误信息会在脚本尝试访问一个不存在的数据库表格时出现(要注意,内层“try-catch”结构产生的异常会由外层结构来处理):

以上就是关于如何使用MySQL和ASP.NET的DataGrid服务器控件的介绍。关于你可以如何使用这两种技术还有更多的内容可谈;所以我希望本文和上面提供的其他参考资源能够帮助你对此有个初步的了解。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Prestasi pertanyaan MySQL boleh dioptimumkan dengan membina indeks yang mengurangkan masa carian daripada kerumitan linear kepada kerumitan logaritma. Gunakan PreparedStatements untuk menghalang suntikan SQL dan meningkatkan prestasi pertanyaan. Hadkan hasil pertanyaan dan kurangkan jumlah data yang diproses oleh pelayan. Optimumkan pertanyaan penyertaan, termasuk menggunakan jenis gabungan yang sesuai, membuat indeks dan mempertimbangkan untuk menggunakan subkueri. Menganalisis pertanyaan untuk mengenal pasti kesesakan; gunakan caching untuk mengurangkan beban pangkalan data;

Membuat sandaran dan memulihkan pangkalan data MySQL dalam PHP boleh dicapai dengan mengikuti langkah berikut: Sandarkan pangkalan data: Gunakan arahan mysqldump untuk membuang pangkalan data ke dalam fail SQL. Pulihkan pangkalan data: Gunakan arahan mysql untuk memulihkan pangkalan data daripada fail SQL.

Bagaimana untuk memasukkan data ke dalam jadual MySQL? Sambung ke pangkalan data: Gunakan mysqli untuk mewujudkan sambungan ke pangkalan data. Sediakan pertanyaan SQL: Tulis pernyataan INSERT untuk menentukan lajur dan nilai yang akan dimasukkan. Laksanakan pertanyaan: Gunakan kaedah query() untuk melaksanakan pertanyaan sisipan Jika berjaya, mesej pengesahan akan dikeluarkan.

Salah satu perubahan utama yang diperkenalkan dalam MySQL 8.4 (keluaran LTS terkini pada 2024) ialah pemalam "Kata Laluan Asli MySQL" tidak lagi didayakan secara lalai. Selanjutnya, MySQL 9.0 mengalih keluar pemalam ini sepenuhnya. Perubahan ini mempengaruhi PHP dan apl lain

Untuk menggunakan prosedur tersimpan MySQL dalam PHP: Gunakan PDO atau sambungan MySQLi untuk menyambung ke pangkalan data MySQL. Sediakan penyata untuk memanggil prosedur tersimpan. Laksanakan prosedur tersimpan. Proses set keputusan (jika prosedur tersimpan mengembalikan hasil). Tutup sambungan pangkalan data.

Mencipta jadual MySQL menggunakan PHP memerlukan langkah berikut: Sambung ke pangkalan data. Buat pangkalan data jika ia tidak wujud. Pilih pangkalan data. Buat jadual. Laksanakan pertanyaan. Tutup sambungan.

Cara menggunakan MySQLi untuk mewujudkan sambungan pangkalan data dalam PHP: Sertakan sambungan MySQLi (require_once) Cipta fungsi sambungan (functionconnect_to_db) Fungsi sambungan panggilan ($conn=connect_to_db()) Laksanakan pertanyaan ($result=$conn->query()) Tutup sambungan ( $conn->close())

Keluaran terbaharu Apple bagi sistem iOS18, iPadOS18 dan macOS Sequoia telah menambah ciri penting pada aplikasi Photos, yang direka untuk membantu pengguna memulihkan foto dan video yang hilang atau rosak dengan mudah disebabkan pelbagai sebab. Ciri baharu ini memperkenalkan album yang dipanggil "Dipulihkan" dalam bahagian Alat pada apl Foto yang akan muncul secara automatik apabila pengguna mempunyai gambar atau video pada peranti mereka yang bukan sebahagian daripada pustaka foto mereka. Kemunculan album "Dipulihkan" menyediakan penyelesaian untuk foto dan video yang hilang akibat kerosakan pangkalan data, aplikasi kamera tidak disimpan ke pustaka foto dengan betul, atau aplikasi pihak ketiga yang menguruskan pustaka foto. Pengguna hanya memerlukan beberapa langkah mudah
