public partial class Form1 : Form
{
DataSet ds = new DataSet();
public Form1()
{
InitializeComponent();
DataTable dt = new DataTable("001");
DataRow dr;
dt.Columns.Add("序号", System.Type.GetType("System.String"));
for (int i = 0; i < 100; i++)
{
dr = dt.NewRow();
dr[0] = i.ToString();
dt.Rows.Add(dr);
}
ds.Tables.Add(dt);
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "001";
}
private void button1_Click(object sender, EventArgs e)
{
DataRow[] dr = ds.Tables[0].Select("序号='5'");
foreach (DataRow drr in dr)
{
label1.Text = Array.IndexOf(ds.Tables[0].Select(), drr).ToString();
}
// label1.Text = Array.IndexOf(ds.Tables[0].Select(), dr[0]).ToString();
}
}
搜索dataset数据,返回指定行,为什么结果是45,不是5
------解决思路----------------------
你这不是int,还是string啊
因为column类型是string,所以虽然你赋值的时候没有强制转换,但是依然还是隐式转换了