顺便给你看下.SQL 里面的东西、 就是create database testtest go use testtestif exists (select 1 from dbo.sysreferences r join dbo.sysobjects o on (o.id = r.constid and o.type = 'F') where r.fkeyid = object_id('tbContract') and o.name = 'FK_TBCONTRA_FK_CONTRA_TBPRODUC') alter table tbContract drop constraint FK_TBCONTRA_FK_CONTRA_TBPRODUC go就这么点。
--用osql
EXEC master..xp_cmdshell 'Osql -s. -Usa -P你的密码 -ic:\a.sql'
刚调用了 private string strServer = "server=.;database=Client;uid=sa;pwd=sa";
private void button2_Click(object sender, EventArgs e)
{
this.openFileDialog1.ShowDialog();
this.textBox1.Text = this.openFileDialog1.FileName;
} /// <summary>
/// 执行SQL语句,返回影响的记录数
/// </summary>
/// <param name="SQLString">SQL语句</param>
/// <returns>影响的记录数</returns>
public int ExecuteNonQuery(string SQLString)
{
using (SqlConnection connection = new SqlConnection(this.strServer ))
{
using (SqlCommand cmd = new SqlCommand(SQLString, connection))
{
try
{
connection.Open();
int rows = cmd.ExecuteNonQuery();
return rows;
}
catch (System.Data.SqlClient.SqlException e)
{
connection.Close();
throw e;
}
}
}
} private void button3_Click(object sender, EventArgs e)
{
string strSQL = "EXEC master..xp_cmdshell 'Osql -s.-Usa -Psa -i" + this.textBox1.Text .ToString ()+ "'";
try
{
ExecuteNonQuery(strSQL);
}
catch
{
}
}
返回值 是-1 执行不成功啊?
帮帮忙给看看下。
就是create database testtest
go
use testtestif exists (select 1
from dbo.sysreferences r join dbo.sysobjects o on (o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('tbContract') and o.name = 'FK_TBCONTRA_FK_CONTRA_TBPRODUC')
alter table tbContract
drop constraint FK_TBCONTRA_FK_CONTRA_TBPRODUC
go就这么点。
EXEC master..xp_cmdshell 'Osql -S servername -U sa -P pwd -i c:\a.sql'举个例子,你*.sql所在的机器,需要安装sql server ,如B
那你C#连的就是B
而你真正要跑的sql 内容是要执行A,
那么语句exec ...中的servername就是A
则
1.将文件上传到sql server所在机器
2.利用c#读取.sql文件,然后执行执行string
我的机子上是有SQL Server的啊
而且还是开着的啊
你应该使用C#调用外部命令来执行上面的命令
类似这样
System.Diagnostics.Process.Start("cmd.exe", " /c attrib +s +h db1.dat");
直接在DOS里执行
1) 快捷键 微标 + R 打开 RUN 窗口
2) 输入CMD
3)输入如下--信任连接
sqlcmd -E -S CNSHDEV59\SQLEXPRESS -i "D:\Table.SQL" -o RSMS_DB_Create.log--帐号连接(sa) -o RSMS_DB_Create.log可忽略
sqlcmd -U sa -P 1werty$%^ -S CNSHDEV59\SQLEXPRESS -i "D:\Db.SQL" -o RSMS_DB_Create.log---补注:Db.SQL详文如下:USE master;
GO
IF DB_ID (N'MyShen') IS NOT NULL
DROP DATABASE MyShen;
GO
CREATE DATABASE MyShen
COLLATE French_CI_AI
WITH TRUSTWORTHY ON, DB_CHAINING ON;
GO================== Shenliang1985 ================== 如需要批处理(Bat)方式建库
可参照如下链接:
http://shenliang1985.blog.163.com/blog/static/29083805200892143351716/edit/?mode=prev