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认识不了这个转义符