日期:2014-05-20  浏览次数:20861 次

大家帮忙看看我这个问题啊,在线等啊
我在做一个小小的数据库系统,在通过程序建立数据库的时候,需要判断输入的数据库名不能与已有的SQL数据库相同.老是报错,说列名无效..还请大虾们帮忙啊
下面是我的部分代码
sc.Open();(连接到master数据库的)
SqlCommand   cmd=new   SqlCommand();
cmd.Connection=sc;
cmd.CommandText= "select   count(name)   from   sysdatabases     where   name= "+this.txtSJK.Text;
  if((int)cmd.ExecuteScalar()> 0)
{
  MessageBox.Show( "名为 "+this.txtSJK.Text+ "的数据库已经存在,请重新输入数据库名 ");
this.txtSJK.Focus();
return;
    }

------解决方案--------------------
try..

cmd.CommandText= "select count([name]) from sysdatabases where [name]= "+this.txtSJK.Text;
------解决方案--------------------
如果不行,检查下是否有name这一字段..
------解决方案--------------------
sc.Open();
SqlCommand cmd=new SqlCommand();
cmd.Connection=sc;
cmd.CommandText= "select count([name]) from sysdatabases where [name]= ' " + this.txtSJK.Text + " ' ";
if((int)cmd.ExecuteScalar()> 0)
{
MessageBox.Show( "名为 "+this.txtSJK.Text+ "的数据库已经存在,请重新输入数据库名 ");
this.txtSJK.Focus();
return;
}
------解决方案--------------------
貌似引号没加...

把你的sql在查询分析器或SSMS里做一下,确保sql本身没错。

另外catch一下SqlException,看看它报什么错。