下面的代码是从坛子里抄的,功能是在c#中执行SQL语句,如创建函数,注释中是原来的代码,能运行,但我把代码稍增加了几行,运行时就显示:第二行,'go'附近有语法错误,在查询分析器里执行也一样,把最后的GO换到另一行,在查询分析器里就能运行。我在代码中增加+"\n" +,但在c#中还是不能运行,请大家帮帮我!
private void b5_Click(object sender, System.EventArgs e)
{
/*sql = "CREATE PROCEDURE myProc AS"+
" SELECT myName, myAddress FROM myTable GO";*/
sql = "create function GET(@no int,@st varchar(10)) returns bit as begin return(convert (bit,case @no"+
" when 1 then case when len(@st)=5 then 1 else 0 end "+
" when 2 then case when left(@st,1)='2' then 1 else 0 end "+
" when 3 then case when right(@st,1)='A' then 1 else 0 end "+
"end)) end " +"\n" +
"go";
ExecuteSQLStmt(sql);
}private void ExecuteSQLStmt(string sql)
{
SqlCommand cmd = new SqlCommand(sql, myConn);
try
{
cmd.ExecuteNonQuery();
}
catch(SqlException ae)
{
MessageBox.Show(ae.Message.ToString());
}
}
private void b5_Click(object sender, System.EventArgs e)
{
/*sql = "CREATE PROCEDURE myProc AS"+
" SELECT myName, myAddress FROM myTable GO";*/
sql = "create function GET(@no int,@st varchar(10)) returns bit as begin return(convert (bit,case @no"+
" when 1 then case when len(@st)=5 then 1 else 0 end "+
" when 2 then case when left(@st,1)='2' then 1 else 0 end "+
" when 3 then case when right(@st,1)='A' then 1 else 0 end "+
"end)) end " +"\n" +
"go";
ExecuteSQLStmt(sql);
}private void ExecuteSQLStmt(string sql)
{
SqlCommand cmd = new SqlCommand(sql, myConn);
try
{
cmd.ExecuteNonQuery();
}
catch(SqlException ae)
{
MessageBox.Show(ae.Message.ToString());
}
}
当然,对于你此问来讲,用不着这些,你只需要和前面讲的一样以;号就可以了.SQL中,代码中GO是不需要的,GO = 代码中的exec了