Tôi muốn tạo một số câu lệnh SQL dựa trên danh sách cột sử dụng tên cột làm tham số.Nhận tiền tố tham số trong ADO.NET
Sửa: C#
var columns = new string[] { "COL1", "COL2" };
var tableName = "TABLE_1";
var prefix = "@"; // TODO get this from the provider factory
string sqlInsert = string.Format(
"INSERT INTO {0}\n({1}) VALUES\n({2})",
tableName,
string.Join(", ", columns),
string.Join(", ", columns.Select(c => prefix + c)));
tạo SQL:
INSERT INTO TABLE_1
(COL1, COL2) VALUES
(@COL1, @COL2)
này làm việc với các SqlClient. Nhưng tôi đang sử dụng các lớp trừu tượng trong System.Data (DbCommand
, DbParameter
, v.v.) và các nhà cung cấp dữ liệu khác nhau như Oracle, MySQL, Postgres, vv dựa trên các cài đặt chuỗi kết nối trong app.config. Vì vậy, tôi cần phải biết tôi phải sử dụng tiền tố nào. Đối với MS-SQL, nó là @
, Oracle sử dụng :
, phần còn lại tôi thực sự không biết.
Có cách nào để nhận ký tự tiền tố này từ nhà máy của nhà cung cấp không?
System.Data.SqlClient.SqlClientFactory.Instance
không có thông tin như vậy hoặc ít nhất tôi không thể tìm thấy thông tin đó.
Nếu không, bạn có thể cho tôi danh sách các cơ sở dữ liệu chung không?
Chỉnh sửa: Nền tảng đích là .NET 2 đến .NET 4 và thông tin sẽ có sẵn thông qua nhà máy của nhà cung cấp.
Bạn có thể cung cấp mã bạn đã sử dụng để tạo SQL không? – mellamokb