我想用c#获取已经存在的数据库的创建脚本,数据表的创建脚本,存储过程的创建脚本,......
请高手指点!
小弟感激不尽!!!!!!!!!!
请高手指点!
小弟感激不尽!!!!!!!!!!
解决方案 »
- devexpress中如何消除dockPanel的标题栏?
- 求组c#怎么获取this[index]的值(Attribute?)
- 为什么提示未将对象的引用设置到对象的实例
- 外网访问内网,坐等。。。
- Datagridview中添加combobox,并且调用combobox传回来的值
- 请教如何用批处理修改IE的受信任站点安全选项:对未标记为可安全执行脚本的activex控件初始化并执行请大虾们帮忙并贴出代码
- 请教c#如何读入excel中文本类型的数字
- 怎样把DATATABLE中的数据在dataGridView1显示出来
- 请问关于即时通信的知识
- 怎样调用flash控件阿,我在com调用里没有找到。
- 如何列出sql server服务器的文件列表
- 怎样把WinForm中的控件与数据库绑定
SQLDMO.SQLServer oServer = new SQLDMO.SQLServer();
oServer.Connect("127.0.0.1", "sa", "sapassword");
SQLDMO._Database mydb = oServer.Databases.Item("northwind", "owner");
SQLDMO._Table myTable = mydb.Tables.Item("Categories", "dbo");
string s = myTable.Script(SQLDMO.SQLDMO_SCRIPT_TYPE.SQLDMOScript_Default,null,null, SQLDMO.SQLDMO_SCRIPT2_TYPE.SQLDMOScript2_Default);
oServer.DisConnect();
Source.Text = s
比如SQLDMO是什么类?
他的文件路径在C:\Program Files\Microsoft SQL Server\80\Tools\Binn
引用它的话就是右键项目---添加引用--浏览---C:\Program Files\Microsoft SQL Server\80\Tools\Binn---打开---确定
然后再using SQLDMO;这样就OK了
这一行出问题了,提示"无效连接"??
直接写成个方法好了!下面是可以直接导出多个表的建表脚本!仅供参考!private string gettablescript(string server, string user, string pwd, string table, string database)
{
SQLDMO.SQLServer oServer = new SQLDMO.SQLServer();
oServer.Connect(""+server+"", ""+user+"", ""+pwd+"");
SQLDMO._Database mydb = oServer.Databases.Item(""+database+"", "owner");
SQLDMO._Table myTable = mydb.Tables.Item(""+table+"", "dbo");
string s = myTable.Script(SQLDMO.SQLDMO_SCRIPT_TYPE.SQLDMOScript_Default, null, null, SQLDMO.SQLDMO_SCRIPT2_TYPE.SQLDMOScript2_Default);
oServer.DisConnect();
return s;
}
/// <summary>
/// 导出建表脚本
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button4_Click(object sender, EventArgs e)
{
this.saveFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
this.saveFileDialog1.ShowDialog();
if (this.saveFileDialog1.FileName.ToString() == "")
{
MessageBox.Show("未选择导出文件路径");
}
else
{
try
{
using (StreamWriter sw = new StreamWriter(this.saveFileDialog1.FileName.ToString()))
{
for (int j = 0; j < checkedListBox1.CheckedItems.Count; j++)
{
string ss = gettablescript(this.comboBox1.SelectedItem.ToString(), this.textBox2.Text, this.textBox1.Text, this.checkedListBox1.CheckedItems[j].ToString(), this.comboBox2.SelectedItem.ToString());
sw.WriteLine(ss);
MessageBox.Show("导出表脚本成功");
}
}
}
catch (Exception s)
{
MessageBox.Show(s.Message);
}
}
}
http://topic.csdn.net/u/20080616/10/123ecf9b-e0de-4a16-94b9-091ebd60de5c.html