public string GetStudentName(string StuNo)
        {
            string sql = @"Data Source=TOSHIBA-PC\MSSQLSERVER1;Initial Catalog=MySchool;User=baishaoge;Pwd=baishaoge";
            SqlConnection con = new SqlConnection(sql);
            con.Open();
            try
            {
                StringBuilder sb = new StringBuilder();
                sb.AppendLine("select");
                sb.AppendLine("      [StudentName]");
                sb.AppendLine("from");
                sb.AppendLine("      [Student]");
                sb.AppendLine("where");
                sb.AppendLine("      [StudentNo]=" + StuNo);
                SqlCommand com = new SqlCommand(sb.ToString(), con);
                SqlDataReader reader = com.ExecuteReader();
                string name = string.Empty;
                if (reader.Read())
                {
                    name = Convert.ToString(reader["StudentName"]);
                }
                reader.Close();
                return name;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return string.Empty;
            }
            finally
            {
                con.Close();
            }
        }错误列名无效 输入的列名肯定是对的

解决方案 »

  1.   

    注意空格,使用Append就可以了,用什么AppendLine,你是连接,又不是向txt文件写内容。
    这样修改,字段名又不是关键字,不需要加[],而且你这个完全没必要使用StringBuilder          try
                {
                    StringBuilder sb = new StringBuilder();
                    sb.Append("select StudentName from Student where ");
                    sb.Append(" StudentNo=" + StuNo);

                    SqlCommand com = new SqlCommand(sb.ToString(), con);
                    SqlDataReader reader = com.ExecuteReader();
                    string name = string.Empty;
                    if (reader.Read())
                    {
                        name = Convert.ToString(reader["StudentName"]);
                    }
                    reader.Close();
                    return name;
                }
      

  2.   

    断点sb.ToString()看拼成是什么样,拿到sqlserver跑看下
      

  3.   

    不是【】的问题  貌似是''号吧  SQL我把这语句拿到 SQL下跑少‘’号
      

  4.   


    string sb = "select StudentName from Student where StudentNo='"+stuNo+"'";怎么写就对了
      

  5.   

    根据你StudentNo的实际类型来定。
      

  6.   

    数据库中如果你的StudentNo是int的话,那么你在传递一个string类型的参数的时候,就应该转型
    public string XXX(string stuNo)
    {
         string sb = "select StudentName from Student where StudentNo="+int.Parse(stuNo); //stuNo是一个字符型数字
    }
      

  7.   

    这点我知道~~我的那个表里的数据是nvarchar(50) 传string 没问题的啊