日期:2014-05-18  浏览次数:20821 次

求C# 利用*.SQL文件自动建库建表 的完整代码
求C# 利用*.SQL文件自动建库建表 的完整代码
想在我的软件点击创建账套按钮,就能自动把.sql文件执行完,来创建数据库。

下面是sql语句文件内容
CREATE TABLE [dbo].[tb_account] (
[_id] [int] IDENTITY (1, 1) NOT NULL ,
[_autoNum] [nvarchar] (22) COLLATE Chinese_PRC_CI_AS NULL ,
[_accountNum] [nvarchar] (30) COLLATE Chinese_PRC_CI_AS NULL ,
[_pass] [nvarchar] (30) COLLATE Chinese_PRC_CI_AS NULL ,
[_type] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[_user] [nvarchar] (25) COLLATE Chinese_PRC_CI_AS NULL ,
[_userDep] [nvarchar] (30) COLLATE Chinese_PRC_CI_AS NULL ,
[_depID] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[_zdy1] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[_zdy2] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[_zdy3] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[_zdy4] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[_inputUser] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[_inputUserName] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[_owerUser] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[_owerUserName] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL 
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[tb_account] ADD 
CONSTRAINT [PK_tb_accountNumberManage] PRIMARY KEY CLUSTERED 
(
[_id]
) ON [PRIMARY] 
GO

------解决方案--------------------
将建库、建表的sql语句写在sql文件中,然后C#去执行这个sql文件
http://blog.163.com/kunkun0921@126/blog/static/169204332201241102857228/
------解决方案--------------------
1、把你的sql文件解析开,字段名及类型及其他信息提取出来
2、using (con = new SqlConnection(ConnectionString))
{
con.Open();
string cmdStr =
"IF OBJECT_ID ('dbo.table_name','U') IS NOT NULL DROP TABLE dbo. table_name ";
cmd = new SqlCommand(cmdStr, con);
cmd.ExecuteNonQuery();
cmd.CommandText =
"create Table table_name (ID int IDENTITY(1,1),FileName nvarchar(10),FilePath nvarchar(50),FileType nvarchar(10),FileDate datetime2,FileSize nvarchar(10))";//你自己解析的字段及类型
cmd.ExecuteNonQuery();
}