इसके अलावा
chrfalch's post को
की तरह कुछ जोड़ने की जरूरत के लिए एक बहुत मदद किया गया था, यहाँ एक DSN अद्यतन करने के लिए कुछ नमूना कोड है (मैं जानता हूँ कि ओ पी है निर्माण के लिए पूछ रहा है, लेकिन इस कोड जो कुछ भी आप सब करने की ज़रूरत) API कॉल का उपयोग करने के बजाय सीधा रजिस्ट्री के माध्यम से (pinvoke.net page से जानकारी का उपयोग कर आसानी से अनुवाद है): -
[DllImport("ODBCCP32.DLL", CharSet = CharSet.Unicode, SetLastError = true)]
static extern bool SQLConfigDataSourceW(UInt32 hwndParent, RequestFlags fRequest, string lpszDriver, string lpszAttributes);
enum RequestFlags : int
{
ODBC_ADD_DSN = 1,
ODBC_CONFIG_DSN = 2,
ODBC_REMOVE_DSN = 3,
ODBC_ADD_SYS_DSN = 4,
ODBC_CONFIG_SYS_DSN = 5,
ODBC_REMOVE_SYS_DSN = 6,
ODBC_REMOVE_DEFAULT_DSN = 7
}
bool UpdateDsnServer(string name, string server)
{
var flag = RequestFlags.ODBC_CONFIG_SYS_DSN;
string dsnNameLine = "DSN=" + name;
string serverLine = "Server=" + server;
string configString = new[] { dsnNameLine, serverLine }.Aggregate("", (str, line) => str + line + "\0");
return SQLConfigDataSourceW(0, flag, "SQL Server", configString);
}
मेरे लिए काम किया, सिर्फ एक बदला "सर्वर" से "Servername" में प्रविष्टि। शायद यह विंडोज 7 में एक बदलाव है। – newenglander