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

在线等,一个查询时出现的问题
//按姓名查找
                public   DataSet   CXXXXM(string   xm)
                {
                        //创建数据库连接    
                        SqlConnection   conn   =   new   SqlConnection( "server=localhost;Initial   catalog   =LIS;uid=sa;password=; ");
                        conn.Open();

                        SqlDataAdapter   adapter   =   new   SqlDataAdapter( "SELECT   *   FROM   BRXX   WHERE   XM= "   +xm,   conn);
                        SqlCommandBuilder   builder   =   new   SqlCommandBuilder(adapter);
                        DataSet   ds   =   new   DataSet();
                        adapter.Fill(ds,   "BRXX ");
                        return   ds;

                        conn.Close();
                }
运行时在adapter.Fill(ds,   "BRXX ");中出现“将   varchar   值   '王五 '   转换为数据类型为   int   的列时发生语法错误。”的错误是怎么回事?我在数据库中根本就没有定义INT型的啊,但我把姓名“王五”换成数字就可以查询到结果?为什么啊?

------解决方案--------------------
SqlDataAdapter adapter = new SqlDataAdapter( "SELECT * FROM BRXX WHERE XM= " +xm, conn);
=〉
SqlDataAdapter adapter = new SqlDataAdapter( "SELECT * FROM BRXX WHERE XM= ' " +xm+ " ' ", conn);

加上单引号试一试。这样才表示字符串