『壹』 誰能給我一個EXCEL VBA往sql資料庫讀取和寫入記錄的例子
讀取和寫入操作方式一樣,唯一不同的是sql語句,讀取用select,讀取用insert,以讀取為例子,錄入如下代碼:
'sql完整例子
Sub testSql()'定義連接對象
Dim cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset
'定義連接字元串
Dim conStr As String
Dim sqlstr As String
'連接字元串-以下是連接MSSQL資料庫
conStr = "Provider=sqloledb; " _
& "Server=192.168.1.121; " _
& "Database=DATABASENAME;Uid=admin;Pwd=admin;"
cnn.Open conStr
sqlstr = "SELECT * from tablename"
rs.Open sqlstr, cnn
Range("a2").CopyFromRecordset rs
rs.Close
cnn.Close
End Sub
『貳』 有沒有利用python開發資料庫的案例
在Windows平台上安裝mysql模塊用於Python開發
用python連接mysql的時候,需要用的安裝版本,源碼版本容易有錯誤提示。下邊是打包了32與64版本。
MySQL-python-1.2.3.win32-py2.7.exe
MySQL-python-1.2.3.win-amd64-py2.7.exe
實例 1、取得 MYSQL 的版本
# -*- coding: UTF-8 -*-
#安裝 MYSQL DB for python
import MySQLdb as mdb
con = None
try:
#連接 mysql 的方法: connect('ip','user','password','dbname')
con = mdb.connect('localhost', 'root','root', 'test');
#所有的查詢,都在連接 con 的一個模塊 cursor 上面運行的
cur = con.cursor()
#執行一個查詢
cur.execute("SELECT VERSION()")
#取得上個查詢的結果,是單個結果
data = cur.fetchone()
print "Database version : %s " % data
finally:
if con:
#無論如何,連接記得關閉
con.close()
實例 2、創建一個表並且插入數據
import MySQLdb as mdb
import sys
#將 con 設定為全局連接
con = mdb.connect('localhost', 'root', 'root', 'test');
with con:
#獲取連接的 cursor,只有獲取了 cursor,我們才能進行各種操作
cur = con.cursor()
#創建一個數據表 writers(id,name)
cur.execute("CREATE TABLE IF NOT EXISTS
Writers(Id INT PRIMARY KEY AUTO_INCREMENT, Name VARCHAR(25))")
#以下插入了 5 條數據
cur.execute("INSERT INTO Writers(Name) VALUES('Jack London')")
cur.execute("INSERT INTO Writers(Name) VALUES('Honore de Balzac')")
cur.execute("INSERT INTO Writers(Name) VALUES('Lion Feuchtwanger')")
cur.execute("INSERT INTO Writers(Name) VALUES('Emile Zola')")
cur.execute("INSERT INTO Writers(Name) VALUES('Truman Capote')")
實例 3、 python 使用 slect 獲取 mysql 的數據並遍歷
import MySQLdb as mdb
import sys
#連接 mysql,獲取連接的對象
con = mdb.connect('localhost', 'root', 'root', 'test');
with con:
#仍然是,第一步要獲取連接的 cursor 對象,用於執行查詢
cur = con.cursor()
#類似於其他語言的 query 函數, execute 是 python 中的執行查詢函數
cur.execute("SELECT * FROM Writers")
#使用 fetchall 函數,將結果集(多維元組)存入 rows 裡面
rows = cur.fetchall()
#依次遍歷結果集,發現每個元素,就是表中的一條記錄,用一個元組來顯示
for row in rows:
print row
運行結果:
(1L, 『Jack London')
(2L, 『Honore de Balzac')
(3L, 『Lion Feuchtwanger')
(4L, 『Emile Zola')
(5L, 『Truman Capote')
上面的代碼,用來將所有的結果取出,不過列印的時候是每行一個元祖列印,現在我們使用方法,取出其中的單個數據:
import MySQLdb as mdb
import sys
#獲取 mysql 的鏈接對象
con = mdb.connect('localhost', 'root', 'root', 'test');
with con:
#獲取執行查詢的對象
cur = con.cursor()
#執行那個查詢,這里用的是 select 語句
cur.execute("SELECT * FROM Writers")
#使用 cur.rowcount 獲取結果集的條數
numrows = int(cur.rowcount)
#循環 numrows 次,每次取出一行數據
for i in range(numrows):
#每次取出一行,放到 row 中,這是一個元組(id,name)
row = cur.fetchone()
#直接輸出兩個元素
print row[0], row[1]
運行結果:
1 Jack London
2 Honore de Balzac
3 Lion Feuchtwanger
4 Emile Zola
5 Truman Capote
實例 4、使用字典 cursor 取得結果集(可以使用表欄位名字訪問值)
import MySQLdb as mdb
import sys
#獲得 mysql 查詢的鏈接對象
con = mdb.connect('localhost', 'root', 'root', 'test')
with con:
#獲取連接上的字典 cursor,注意獲取的方法,
#每一個 cursor 其實都是 cursor 的子類
cur = con.cursor(mdb.cursors.DictCursor)
#執行語句不變
cur.execute("SELECT * FROM Writers")
#獲取數據方法不變
rows = cur.fetchall()
#遍歷數據也不變(比上一個更直接一點)
for row in rows:
#這里,可以使用鍵值對的方法,由鍵名字來獲取數據
print "%s %s" % (row["Id"], row["Name"])
實例 5、獲取單個表的欄位名和信息的方法
import MySQLdb as mdb
import sys
#獲取資料庫的鏈接對象
con = mdb.connect('localhost', 'root', 'root', 'test')
with con:
#獲取普通的查詢 cursor
cur = con.cursor()
cur.execute("SELECT * FROM Writers")
rows = cur.fetchall()
#獲取連接對象的描述信息
desc = cur.description
print 'cur.description:',desc
#列印表頭,就是欄位名字
print "%s %3s" % (desc[0][0], desc[1][0])
for row in rows:
#列印結果
print "%2s %3s" % row
運行結果:
cur.description: ((『Id', 3, 1, 11, 11, 0, 0), (『Name', 253, 17, 25, 25, 0, 1))
Id Name
1 Jack London
2 Honore de Balzac
3 Lion Feuchtwanger
4 Emile Zola
5 Truman Capote
實例 6、使用 Prepared statements 執行查詢(更安全方便)
import MySQLdb as mdb
import sys
con = mdb.connect('localhost', 'root', 'root', 'test')
with con:
cur = con.cursor()
#我們看到,這里可以通過寫一個可以組裝的 sql 語句來進行
cur.execute("UPDATE Writers SET Name = %s WHERE Id = %s",
("Guy de Maupasant", "4"))
#使用 cur.rowcount 獲取影響了多少行
print "Number of rows updated: %d" % cur.rowcount
結果:
Number of rows updated: 1
實例 7、把圖片用二進制存入 MYSQL
有人喜歡把圖片存入 MYSQL(這種做法貌似很少吧),我看大部分的程序,圖片都是存放在伺服器上的文件,資料庫中存的只是圖片的地址而已,不過 MYSQL 是支持把圖片存入資料庫的,也相應的有一個專門的欄位 BLOB (Binary Large Object),即較大的二進制對象欄位,請看如下程序,注意測試圖片自己隨便找一個,地址要正確:
首先,在資料庫中創建一個表,用於存放圖片:
復制代碼代碼如下:
CREATE TABLE Images(Id INT PRIMARY KEY AUTO_INCREMENT, Data MEDIUMBLOB);
然後運行如下 PYTHON 代碼進行:
import MySQLdb as mdb
import sys
try:
#用讀文件模式打開圖片
fin = open("../web.jpg")
#將文本讀入 img 對象中
img = fin.read()
#關閉文件
fin.close()
except IOError, e:
#如果出錯,列印錯誤信息
print "Error %d: %s" % (e.args[0],e.args[1])
sys.exit(1)
try:
#鏈接 mysql,獲取對象
conn = mdb.connect(host='localhost',user='root',passwd='root',
db='test')
#獲取執行 cursor
cursor = conn.cursor()
#直接將數據作為字元串,插入資料庫
cursor.execute("INSERT INTO Images SET Data='%s'" %
mdb.escape_string(img))
#提交數據
conn.commit()
#提交之後,再關閉 cursor 和鏈接
cursor.close()
conn.close()
except mdb.Error, e:
#若出現異常,列印信息
print "Error %d: %s" % (e.args[0],e.args[1])
sys.exit(1)
實例 8、從資料庫中把圖片讀出來
import MySQLdb as mdb
import sys
try:
#連接 mysql,獲取連接的對象
conn = mdb.connect('localhost', 'root', 'root', 'test');
cursor = conn.cursor()
#執行查詢該圖片欄位的 SQL
cursor.execute("SELECT Data FROM Images LIMIT 1")
#使用二進制寫文件的方法,打開一個圖片文件,若不存在則自動創建
fout = open('image.png','wb')
#直接將數據如文件
fout.write(cursor.fetchone()[0])
#關閉寫入的文件
fout.close()
#釋放查詢數據的資源
cursor.close()
conn.close()
except IOError, e:
#捕獲 IO 的異常 ,主要是文件寫入會發生錯誤
print "Error %d: %s" % (e.args[0],e.args[1])
sys.exit(1)
實例 9、使用 Transaction 即事務(手動提交,自動回滾)
import MySQLdb as mdb
import sys
try:
#連接 mysql,獲取連接的對象
conn = mdb.connect('localhost', 'root', 'root', 'test');
cursor = conn.cursor()
#如果某個資料庫支持事務,會自動開啟
#這里用的是 MYSQL,所以會自動開啟事務(若是 MYISM 引擎則不會)
cursor.execute("UPDATE Writers SET Name = %s WHERE Id = %s",
("Leo Tolstoy", "1"))
cursor.execute("UPDATE Writers SET Name = %s WHERE Id = %s",
("Boris Pasternak", "2"))
cursor.execute("UPDATE Writer SET Name = %s WHERE Id = %s",
("Leonid Leonov", "3"))
#事務的特性 1、原子性的手動提交
conn.commit()
cursor.close()
conn.close()
except mdb.Error, e:
#如果出現了錯誤,那麼可以回滾,就是上面的三條語句要麼執行,要麼都不執行
conn.rollback()
print "Error %d: %s" % (e.args[0],e.args[1])
結果:
1、因為不存在 writer 表( SQL 第三條語句),所以出現錯誤:Error 1146: Table 『test.writer' doesn't exist
2、出現錯誤,出發異常處理, 3 條語句的前兩條會自動變成了沒有執行,結果不變
3、如果本代碼放到一個 MyISAM 引擎表,前兩句會執行,第三句不會;如果是 INNDB 引擎,則都不會執行。
『叄』 幾種常用PHP連接資料庫的代碼示例
PHP連接資料庫之PHP連接MYSQL資料庫代碼
PHP連接資料庫之PHP連接ACCESS資料庫代碼方法
PHP連接資料庫之PHP連接MS SQL資料庫代碼方法
安裝SQL伺服器並添加PHP的MSSQL擴展
使用以下代碼連接並測試
PHP連接資料庫之PHP連接Oracle資料庫
PHP提供了兩套函數與Oracle連接 分別是ORA_和OCI函數 其中ORA_函數略顯陳舊 OCI函數更新據說更好一些 兩者的使用語法幾乎相差無幾 你的PHP安裝選項應該可以支持兩者的使用
『肆』 C# 定時查詢SQLServer資料庫,並且將查詢到的數據循環發送。請給個代碼案例謝謝~ 網站的引用也可以。
Anllen,這樣做是不科學的,如果是定時發送你可以考慮使用sql server中的計劃,他可以定義執行某些任務,同時在sql server 2005以後還加入機器空閑時執行等等,而且還是可在失敗時重試(重試次數自己設置),還可以對部分成功時進行記錄等等。
如果是要求立即執行或是其他不能指執行條件時,可以考慮sql server 2005之後的server broker,這種機制較為安全。同時因為使用queue的原因,使消息只到達一次而不會重復,解決實際工作中的資料庫與程序間的非同步傳輸問題。
既然有這么多好的方案為什麼還考慮重復地循環地查詢資料庫呢——你的資料庫效率被拉的很慢的,別忘記了還是許多鎖機制,會導致SQL server不再及時響應外部請求的!
『伍』 請朋友幫忙:VB2008操作Access資料庫。完成連接、添加、修改、刪除、讀某個列值至變數等完整的代碼示例謝
VB access,添加/刪除/修改記錄代碼 給你一個示例,這個是用戶登錄系統
'准備工作: 資料庫 D:\Mydb.mdb 資料庫中,建數據表:UserInfo,數據表中,建欄位:User,Password,並添加一條記錄
'點工程->引用 選中 Microsoft Activex Data Objects 2.1 Library
'控制項:添加一個文本框,一個命令按鈕
Private Sub Command1_Click()
Dim s As String
Dim Conn As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\mydb.mdb"
'請將資料庫名及路徑換成你的實際資料庫名及路徑
Dim UserName As String
Dim Password As String
s = Text1.Text
If s = "1" Or s = "2" Then
UserName = InputBox("請輸入用戶名")
Password = InputBox("請輸入用戶密碼")
sql = "Select * From [UserInfo] where User='" & UserName & "'"
'UserInfo請換成你的實際數據表名
Rs.Open sql, Conn, 1, 3
If Rs.EOF Then
MsgBox "沒有找到此用戶"
Else
If Rs("Password") = Password Then
If s = "1" Then
MsgBox "123"
ElseIf s = "2" Then
MsgBox "456"
End If
Else
MsgBox "密碼錯誤"
End If
End If
End If
End Sub
上面的例子實現了查詢
如果是要添加,刪除,更新等操作,只要編寫相應的SQL語句,再用
Conn.Execute SQL 就可以了,如:
添加的:
SQL="Insert Into [UserInfo](User,Password) Values('aaaa','1234')"
Conn.Execute SQL '執行後,就添加了一條記錄
刪除:
SQL="Delete From [UserInfo] Where User='aaaa'"
Conn.Execute SQL '刪除用戶名為aaaa的用戶記錄
更新:
SQL="Update [UserInfo] Set Password='abcdefg' Where User='aaaa'"
Conn.Execute SQL '執行後,修改用戶aaaa的密碼為abcdefg
以上只伏飢是示例,在實際使用過程中,可以將一些內容用控制項輸入等方式進行,這樣就有很大的靈活性余廳歲了
動態創建資料庫
引用 microsoft DAP 3.6 Object Library
Dim myDB As DAO.Database
Set myDB = CreateDatabase(App.Path + "\111.mdb", dbLangGeneral) '如果不存在資料庫
Set myDB = OpenDatabase(App.Path + "\111.mdb") '如果存在資料庫
Dim str_SQL As String
str_SQL = "Create Table NewTable1(Field1 Text(10),Field2 Short)"
myDB.Execute str_SQL
str_SQL = "Create Table NewTable2(Field1 Text(10),Field2 Short)"
myDB.Execute str_SQL
myDB.Close
向已經建好的資料庫中添加記錄
建立資料庫a,表名字b,欄位c,文本格式,在窗體上畫一command ,畫一個文本框,這個代碼就是將文本內容寫入資料庫豎睜
要先引用microsoft activeX data object 2.5 library
代碼如下:
Private Sub Command1_Click()
Dim cnDk As New ADODB.Connection
Dim strDk As String
Dim rDk As New ADODB.Recordset
Dim sql As String
strDk = "DBQ=" & App.Path & "\a.mdb;Driver={Microsoft Access Driver (*.mdb)};"
cnDk.Open strDk
sql = "insert into b (c) values ('" & text1.text& "')"
cnDk.Execute sql
cnDk.Close
Set cnDk = Nothing
End Sub
在資料庫中添加多條記錄
只要可以進行輸入文本的都可以
改一下這些吧,你單擊一次就提示輸入一次,輸完了自動保存
改後
Data1.Recordset.AddNew
Data1.Recordset.Fields("username") = trim(inputbox("請輸入名字"))
Data1.Recordset("password") =val(trim(inputbox("請輸入電話")))
Data1.UpdateRecord
——————————————————————————————
Data1.Recordset.AddNew
Data1.Recordset.Fields("username") = "張三|"
Data1.Recordset("password") = "fsdfsd"
Data1.UpdateRecord
Data1.Recordset.AddNew
Data1.Recordset.Fields("username") = "李四|"
Data1.Recordset("password") = "fsdf432d"
Data1.UpdateRecord
Data1.Recordset.AddNew
Data1.Recordset.Fields("username") = "王五|"
Data1.Recordset("password") = "f42342d"
Data1.UpdateRecord
MsgBox "adad"
========================================================================================
vb+access 資料庫的記錄的添加與刪除
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Private Sub Command2_Click()
Set rs = cn.Execute("select * from wenzhang where 內容='" & Text1.Text & "'")
If Text1.Text = "" Then
MsgBox ("文章不能為空!")
ElseIf rs.EOF = False Then
MsgBox ("文章不能重復!")
Else
cn.Execute ("insert into wenzhang values('" & Combo1.Text & "','" & Text3.Text & "','" & Text4.Text & "','" &
Text1.Text & "')")
MsgBox ("ok")
End If
End Sub
'添加按鈕
Private Sub Command3_Click()
Dim myval As String
Set rs = cn.Execute("select * from wenzhang where 內容='" & Text1.Text & "'")
If rs.EOF Then
myval = MsgBox("是否保存文章?", vbInformation + vbYesNoCancel, "提示")
If myval = vbYes Then
cn.Execute ("insert into wenzhang values('" & Combo1.Text & "','" & Text3.Text & "','" & Text4.Text & "','" &
Text1.Text & "')")
MsgBox ("保存成功")
Else
Combo1.Text = ""
End If
Else
Text1.Text = ""
Combo1.Text = ""
End If
End Sub
'刪除按鈕
Private Sub Command4_Click()
If Text1.Text = "" Then
MsgBox ("不能刪除空記錄!")
Else
Dim myval As String
myval = MsgBox("是否刪除文章?", vbInformation + vbYesNo, "提示")
If myval = vbYes Then
Set rs = cn.Execute("delete from wenzhang where 內容 ='" & Text1.Text & "'")
MsgBox ("刪除成功!")
End If
End If
End Sub
'連接資料庫
Private Sub Form_Load()
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\vb.net\temp.mdb;Persist Security Info=False"
cn.CursorLocation = adUseClient
cn.Open
End Sub
『陸』 掌握Python 操作 MySQL 資料庫
本文Python 操作 MySQL 資料庫需要是使用到 PyMySQL 驅動
Python 操作 MySQL 前提是要安裝好 MySQL 資料庫並能正常連接使用,安裝步驟詳見下文。
注意: 安裝過程我們需要通過開啟管理員許可權來安裝,否則會由於許可權不足導致無法安裝。
首先需要先下載 MySQL 安裝包, 官網下載地址 下載對應版本即可,或直接在網上拉取並安裝:
許可權設置:
初始化 MySQL:
啟動 MySQL:
查看 MySQL 運行狀態:
Mysql安裝成功後,默認的root用戶密碼為空,你可以使用以下命令來創建root用戶的密碼:
登陸:
創建資料庫:
查看資料庫:
PyMySQL 模塊使用 pip命令進行安裝:
假如系統不支持 pip 命令,可以使用以下方式安裝:
pymysql .connect 函數:連接上資料庫
輸出結果顯示如下:表面資料庫連接成功
使用 pymysql 的 connect() 方法連接資料庫,connect 參數解釋如下:
conn.cursor():獲取游標
如果要操作資料庫,光連接數據是不夠的,咱們必須拿到操作資料庫的游標,才能進行後續的操作,游標的主要作用是用來接收資料庫操作後的返回結果,比如讀取數據、添加數據。通過獲取到的資料庫連接實例 conn 下的 cursor() 方法來創建游標,實例如下:
輸出結果為:
cursor 返回一個游標實例對象,其中包含了很多操作數據的方法,如執行sql語句,sql 執行命令: execute() 和 executemany()
execute(query,args=None):
executemany(query,args=None):
其他游標對象如下表:
完整資料庫連接操作實例如下:
以上結果輸出為:
創建表代碼如下:
如下所示資料庫表創建成功:
插入數據實現代碼:
插入數據結果:
Python查詢Mysql使用 fetchone() 方法獲取單條數據, 使用fetchall() 方法獲取多條數據。
查詢數據代碼如下:
輸出結果:
DB API中定義了一些資料庫操作的錯誤及異常,下表列出了這些錯誤和異常:
本文給大家介紹 Python 如何連接 Mysql 進行數據的增刪改查操作,文章通過簡潔的代碼方式進行示例演示,給使用 Python 操作 Mysql 的工程師提供支撐。
『柒』 請各位大俠給出用VB.NET連接oracle資料庫並執行sql查詢語句的代碼示例,謝謝!!
Dim OraSession As Object '會話對象
Dim OraDatabase As Object '資料庫對象
Dim OraDynaset As Object'動態集對象
Dim OraDatabase As Object』欄位集對象
Set OraSession =CreateObject("OracleInProcServer.XOraSession")
Set OraDatabase=OraSession.CreateDatabase
("Demo","scott/tiger",0&)'建立資料庫連接
Set OraDynaset=OraDatabase.CreateDynaset("select*from
student",0&)'初始化動態集對象
』添加記錄
'Begin an AddNew
OraDynaset.DbAddNew
OraDynaset.Fields("ID").value="1000"
』ID為列名
OraDynaset.DbUpdate'更新數據到表
』刪除
OraDynaset.DbDelete
'修改
OraDynaset.DbEdit
OraDynaset.Fields("ID").value="101210"
OraDynaset.DbUpdate