有个定义dd是一个变量,由客户自己输入任何内容
    
    SqlCommand myCommand = new SqlCommand("select count(*) as total from sysobjects where name='"+dd+"'",con); 
    int count=Convert.ToInt32(myCommand.ExecuteScalar());
    if (count==1)
   {   
MessageBox.Show("定单已经存在,<确定>继续使用");  
con.Close();
   }   
   else   
   {
MessageBox.Show("定单不存在,已创建,<确定>开始使用");
myCommand.CommandText="create table "+dd+"(tID int identity(1,1),time varchar(50),tiaoma varchar(50),mc varchar(50),banben varchar(50),line varchar(50),)";
myCommand.ExecuteNonQuery();
con.Close();
   }   这个是把“dd”这个变量直接生成一个表,把“dd”作为表名使用。问题是,“dd”我输入数字不行,只可以用英文。直接在企业管理器就就可以用数字,为什么会这样,请高手帮我改正,谢谢!!

解决方案 »

  1.   

    不用这个'"+dd+"',
    用这个试试:"@dd"
      

  2.   

    你再试一下,把dd变量前后两个单引号去掉,看看行不行.JUST TRY IT!
      

  3.   

    或用一个 
    try 
    {
       ........
    }
    catch( )
    看看什么错误.
      

  4.   

    你再试一下,把dd变量前后两个单引号去掉,看看行不行.JUST TRY IT!
    ------------------------------------------------------------
    去掉符号就连不上数据库了!
      

  5.   

    +Convert.ToString(dd)+
    -----------------------
    也不行![]写字哪里?怎么!写???
      

  6.   

    create table '"+dd+"'缺单引号
      

  7.   

    create table '"+dd+"'缺单引号
    ---------------------------------------------------------------------
    不缺,缺了就根本不能用了,我现在的问题是不能用数字做表名,就是说“dd”里面只要有数字就会错。
      

  8.   

    谢谢大家,我自己搞定了,把前面dd = txtdd.Text;改成 dd = "A"+ txtdd.Text;就OK了!多了个A在表前面就可以了,以后看表的时候只要去掉第一个“A”字母显示就OK了!!送分了!谢谢!