本文介绍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