不能这么用ExecuteScalar[C#] 
public void ReadMyData(string myConnString) {
    string mySelectQuery = "SELECT OrderID, CustomerID FROM Orders";
    SqlConnection myConnection = new SqlConnection(myConnString);
    SqlCommand myCommand = new SqlCommand(mySelectQuery,myConnection);
    myConnection.Open();
    SqlDataReader myReader;
    myReader = myCommand.ExecuteReader();
    // Always call Read before accessing data.
    while (myReader.Read()) {
       Console.WriteLine(myReader.GetInt32(0) + ", " + myReader.GetString(1));
    }
    // always call Close when done reading.
    myReader.Close();
    // Close the connection when done with it.
    myConnection.Close();
 }

解决方案 »

  1.   

    ExecuteScalar
    执行查询,并返回查询所返回的结果集中第一行的第一列。忽略额外的列或行。
      

  2.   

    //MyCommand.ExecuteScalar();
    SqlDataReader dr = MyCommand.ExecuteReader();
    if(dr.Read())
    {
       string piaos = dr[0].ToString();
       string xingm = dr[1].ToString();
    }
      

  3.   

    也可以用dataset返回
    sqlConnection MyConnection;
    SqlCommand MyCommand;
    String ConnStr;
    //链接SQL Server数据库
    MyConnection =new SqlConnection("Initial Catalog=mydb;Data Source=xxzxw;user id=sa;password=123456;");
    MyConnection.Open();
                  ConnStr="selece piaos,xingm from toup where xingm=zhangxd ";
                          MyCommand=new SqlCommand(ConnStr,MyConnection);
                         //数据适配器
    SqlDataAdapter da = new SqlDataAdapter();

    //连接命令对象
    da.SelectCommand = cmd;

    //数据集
    DataSet ds = new DataSet();//数据集
    DataSet ds = new DataSet();
      

  4.   

    谢谢大家的回答,可我的字段在数据库里是int 型的,也要string piaos = dr[0].ToString()吗?
      

  5.   

    SqlDataReader有一系列的Getxx方法,你要什么类型就用什么Get了.