[英]How to create DSN for SQL Server using C#?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Microsoft.SqlServer.Management.Common;
using Microsoft.SqlServer.Management.Smo;
using System.Data.SqlClient;
using Microsoft.Win32;
using System.Runtime.InteropServices;
[DllImport("ODBCCP32.dll")]
private static extern bool SQLConfigDataSource(IntPtr parent, int request, string driver, string attributes);
namespace CopyDatabase
{
public partial class Synchronize : Form
{
public Synchronize()
{
InitializeComponent();
}
private void Synchronize_Load(object sender, EventArgs e)
{
Server srv = new Server();
String[] s = { "master", "tempdb", "model", "msdb", "Resource", "distribution" };
foreach (Database database in srv.Databases)
{
int flag = 0;
for (int i = 0; i < s.Length; i++)
{
if (String.Compare(database.Name, s[i], true) == 0)
{
flag = 1;
break;
}
}
if (flag == 0)
{
cmbSource.Items.Add(database.Name);
cmbDest.Items.Add(database.Name);
}
}
}
private void button1_Click(object sender, EventArgs e)
{
string str = "SERVER=HOME\0DSN=MYDSN\0DESCRIPTION=MYDSNDESC\0DATABASE=DBServer\0TRUSTED_CONNECTION=YES";
SQLConfigDataSource((IntPtr)0, 4, "SQL Server",str);
}
}
}
參考: http : //social.msdn.microsoft.com/Forums/en-US/vscrystalreports/thread/441811b9-c4e9-4d15-97a3-7b92d2c9f318
有人可以幫我清除以下錯誤嗎?
錯誤1預期的類,委托,枚舉,接口或結構C:\\ Documents and Settings \\ Pavan \\ My Documents \\ Visual Studio 2008 \\ Projects \\ CopyDatabase \\ CopyDatabase \\ Synchronize.cs 17 23 CopyDatabase
。
錯誤2名稱'SQLConfigDataSource'在當前上下文中不存在C:\\ Documents and Settings \\ Pavan \\ My Documents \\ Visual Studio 2008 \\ Projects \\ CopyDatabase \\ CopyDatabase \\ Synchronize.cs 67 13 CopyDatabase
沒有上下文的其余代碼,我的WAG是您沒有在外部和單擊處理程序周圍聲明一個類。
如果您只需要動態創建SQL Dsn,只需將此代碼更改為以下結構-
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using Microsoft.Win32;
using System.Runtime.InteropServices;
namespace CopyDatabase
{
public partial class Synchronize : Form
{
[DllImport("ODBCCP32.dll")]
private static extern bool SQLConfigDataSource(IntPtr parent, int request, string
driver, string attributes);
public Synchronize()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string str = "SERVER=HOME\0DSN=MYDSN\0DESCRIPTION=MYDSNDESC\0DATABASE=DBServer\0TRUSTED_CONNECTION=YES";
SQLConfigDataSource((IntPtr)0, 4, "SQL Server",str);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.