private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
string strComm,strConn;
strConn = "server=jiang;uid=sa;pwd=;database=Test";
strComm = "Select * From Student";
SqlConnection conn = new SqlConnection(strConn);
conn.Open ();
SqlCommand myComm = new SqlCommand (strComm,conn);
SqlDataAdapter myAdapter = new SqlDataAdapter ();
DataSet myDataSet = new DataSet ();
myAdapter.SelectCommand = myComm;
myAdapter.Fill (myDataSet,"Student");
conn.Close ();
SqlCommandBuilder myCommandBuild = new SqlCommandBuilder (myAdapter);

foreach(DataRow rowIndex in myDataSet.Tables["Student"].Rows )
{
if(rowIndex["grade"].ToString()=="34")
rowIndex.Delete();
Response.Write(rowIndex["grade"].ToString()+"<br>");
}
//string [] addNew = new string [1]{"aaa"};
//myDataSet.Tables ["Student"].Rows .Add (addNew);
myAdapter.Update (myDataSet,"Student");
studentGrid.DataSource = myDataSet.Tables [0];
studentGrid.DataBind ();
}在foreach循环中条件符合都不可以删除,grade是char,10
但是我用列是Name是又可以,Name是varchar,50,
ToString应该可以把数据库所有的类型转成String的吧?
为什么不可以?

解决方案 »

  1.   

    改一下:
    if(rowIndex["grade"].ToString().Trim()=="34")
      

  2.   

    还是这位仁兄行,!!!
    现在行了.
    为什么会这样的啊?
    Name是varchar 50,age是char 10,但是我在age那里的值没有两边留空啊?
    为什么到这时要去空?
      

  3.   

    試一下強制轉換:
    if((string)rowIndex["grade"].ToString()=="34")
      

  4.   

    foreach(DataRow rowIndex in myDataSet.Tables["Student"].Rows )
    {
    if(Convert.ToString (rowIndex["grade"].ToString()) =="23")
    rowIndex.Delete ();
    //Response.Write(rowIndex["grade"].ToString()+"<br>");
    }
    我这样改不行啊,用Convert.ToString怎样改啊
      

  5.   

    兄弟,char類型的長度是固定的啊!如果有效長度不夠﹐會自動在后面添加空格的.