读书人

C#读取.sql文件自动建表的功能多出个

发布时间: 2012-08-16 12:02:15 作者: rapoo

C#读取.sql文件,自动建表的功能多出个\t 怎么解决呀?
这是执行sql文件的代码,但执行后会多出个\t 示例:CREATE TABLE [dbo].[tb_account] (\t[_id] [int] IDENTITY (1, 1) NOT NULL 造成语句执行不了,怎么才能让语句没有这个\t呢。

/// <summary>
/// 执行Sql文件
/// </summary>
/// <param name="varFileName"></param>
/// <param name="Conn"></param>
/// <returns></returns>
private bool ExecuteSqlFile(string varFileName, String Conn)
{
if (!File.Exists(varFileName))
{
return false;
}

StreamReader sr = File.OpenText(varFileName);

ArrayList alSql = new ArrayList();

string commandText = "";

string varLine = "";

while (sr.Peek() > -1)
{
varLine = sr.ReadLine();
if (varLine == "")
{
continue;
}
if (varLine != "GO")
{
commandText += varLine;
}
else
{
alSql.Add(commandText);//但执行后会多出个\t 示例:CREATE TABLE [dbo].[tb_account] (\t[_id] [int] IDENTITY (1, 1) NOT NULL 造成语句执行不了,怎么才能让语句没有这个\t呢
commandText = "";
}
}

sr.Close();

try
{
ExecuteCommand(alSql, Conn);
}
catch
{
return false;
}

return true;
}

下面是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

[解决办法]
alSql.Add(commandText);//断点调试这个方法
[解决办法]
执行后自动添加的吗?要是自动添加的应该没事啊……
[解决办法]
(\t[_id] 你要这个\t干嘛?,把它去了不就行了,sql认识不了这个转义符

读书人网 >C#

热点推荐