本文介紹IronPython使用Sql Server數據庫的方法,並配有Ironpython代碼及相對應的C#代碼。
添加引用
首先需要使用import,添加命名空間System.Data和System.Data.SqlClient。
import clr
clr.AddReference('System.Data')
from System.Data import *
from System.Data.SqlClient import *
- 連接數據庫
保持數據庫爲打開狀態,記錄連接字符串(Connecting String),連接字符串樣例:
Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename="C:\Users\Asi\Documents\Visual Studio 2015\Projects\Project1\Project1\Database1.mdf";Integrated Security=True
- 查詢,返回DataSet
執行查詢語句,以數據集(DataSet)的形式返回查詢結果(代碼中ConnectingStr爲連接字符串)
IronPython代碼
def RetSet(querystr):
DataAdapter = SqlDataAdapter(querystr, connectingstr);
myDataSet = DataSet();
DataAdapter.Fill(myDataSet);
return myDataSet;
C#代碼
static public DataSet RetSet(string querystr)
{
SqlDataAdapter DataAdapter = new SqlDataAdapter(querystr, connectionstr);
DataSet myDataSet = new DataSet();
DataAdapter.Fill(myDataSet);
return myDataSet;
}
- 查詢個數,返回Int32
執行查詢語句,查詢滿足條件的個數,以Int32的形式返回查詢結果(代碼中ConnectingStr爲連接字符串)
IronPython代碼
def QueryCount(querystr):
sc = SqlConnection(connectionstr)
sc.Open()
cmd = SqlCommand(querystr, sc)
res = cmd.ExecuteScalar()
sc.Close()
return res
C#代碼
static public int QueryCount(string querystr)
{
using (SqlConnection sc = new SqlConnection(connectionstr))
{
sc.Open();
SqlCommand cmd = new SqlCommand(querystr, sc);
return Convert.ToInt32(cmd.ExecuteScalar());
}
}
- 執行非查詢語句
執行非查詢語句,非查詢語句包括delete,update等操作(代碼中ConnectingStr爲連接字符串)
IronPython代碼
def NonQuery(querystr):
sc = SqlConnection(connectionstr)
sc.Open()
cmd = SqlCommand(querystr, sc)
cmd.ExecuteNonQuery()
sc.Close()
C#代碼
static public void NonQuery(string querystr)
{
using (SqlConnection sc = new SqlConnection(connectionstr))
{
sc.Open();
SqlCommand cmd = new SqlCommand(querystr, sc);
cmd.ExecuteNonQuery();
}
}
上述代碼測試環境:Ironpython2.7