我做了这个LIB https://github.com/pedro-muniz/ODPNetConnect/blob/master/ODPNetConnect.cs
所以你可以做参数写入和读出这样的:
ODPNetConnect odp = new ODPNetConnect();
if (!String.IsNullOrWhiteSpace(odp.ERROR))
{
throw new Exception(odp.ERROR);
}
//Write:
string sql = @"INSERT INTO TABLE (D1, D2, D3) VALUES (:D1, :D2, :D3)";
Dictionary<string, object> params = new Dictionary<string, object>();
params["D1"] = "D1";
params["D2"] = "D2";
params["D3"] = "D3";
int affectedRows = odp.ParameterizedWrite(sql, params);
if (!String.IsNullOrWhiteSpace(odp.ERROR))
{
throw new Exception(odp.ERROR);
}
//read
string sql = @"SELECT * FROM TABLE WHERE D1 = :D1";
Dictionary<string, object> params = new Dictionary<string, object>();
params["D1"] = "D1";
DataTable dt = odp.ParameterizedRead(sql, params);
if (!String.IsNullOrWhiteSpace(odp.ERROR))
{
throw new Exception(odp.ERROR);
}
注意:您必须在ODPN中更改这些行etConnect.cs设置连接字符串:
static private string devConnectionString = "SET YOUR DEV CONNECTION STRING";
static private string productionConnectionString = "SET YOUR PRODUCTION CONNECTION STRING";
而且您需要更改第123行以将环境设置为dev或prod。
public OracleConnection GetConnection(string env = "dev", bool cacheOn = false)
谢谢乔希!怎么样插入?我不需要限制列名称,是吗? 这里真正的痛苦就是那个BindByName。 Npgsql不需要或需要设置该变量! – 2010-03-02 20:04:48
对于插入,您可以使用“INSERT INTO table_name values(:foo,:bar)”或“INSERT INTO table_name(foo,bar)values(:foo,:bar)” 我更喜欢表格结构未来的变化。 – 2010-03-02 20:06:49
谢谢:D Darn那BindByName! :P – 2010-03-02 20:07:31