我做了這個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