using (SqlConnection con = new SqlConnection(ConnectString))
{
try
{
DataSet ds = new DataSet();
SqlCommand cmd=new SqlCommand (sql,con);
SqlDataReader dr = cmd.ExecuteReader(); int nFields = dr.FieldCount;
lv.Clear(); for (int i = 0; i < nFields ; i++)
{
lv.Columns.Add(dr.GetName(i), 100, HorizontalAlignment.Left);
} int nRow = 0;
while (dr.Read())
{
// Create an array of subitems for quick insertion
// The subitems will be all fields in the row except for
// the first field
String[] subitems = new String[nFields];
for (int i = 0; i < nFields; i++)
{
subitems[i] = dr[i].ToString();
} // Insert a new item into the listview, and add the subitems at
// the same time. The item will be the first field in the row
ListViewItem item = new ListViewItem(subitems, -1);
lv.Items.Add(item);
++nRow;
}
}
catch (SqlException ex)
{
throw new Exception(ex.Message);
}
{
try
{
DataSet ds = new DataSet();
SqlCommand cmd=new SqlCommand (sql,con);
SqlDataReader dr = cmd.ExecuteReader(); int nFields = dr.FieldCount;
lv.Clear(); for (int i = 0; i < nFields ; i++)
{
lv.Columns.Add(dr.GetName(i), 100, HorizontalAlignment.Left);
} int nRow = 0;
while (dr.Read())
{
// Create an array of subitems for quick insertion
// The subitems will be all fields in the row except for
// the first field
String[] subitems = new String[nFields];
for (int i = 0; i < nFields; i++)
{
subitems[i] = dr[i].ToString();
} // Insert a new item into the listview, and add the subitems at
// the same time. The item will be the first field in the row
ListViewItem item = new ListViewItem(subitems, -1);
lv.Items.Add(item);
++nRow;
}
}
catch (SqlException ex)
{
throw new Exception(ex.Message);
}
一个是SqlConnection 没有open
在SqlDataReader dr = cmd.ExecuteReader();前要con.Open()
另一个是SqlDataReader 没有Close();
在while 外面要执行dr.Close();
{
try
{
con.open();
DataSet ds = new DataSet();
SqlCommand cmd=new SqlCommand (sql,con);
SqlDataReader dr = cmd.ExecuteReader();
int nFields = dr.FieldCount;
lv.Clear();
for (int i = 0; i < nFields ; i++)
{
lv.Columns.Add(dr.GetName(i), 100, HorizontalAlignment.Left);
}
int nRow = 0;
while (dr.Read())
{
for (int i = 0; i < nFields; i++)
{
String[] subitems = new String[nFields];
subitems[i] = dr[i].ToString();
}
ListViewItem item = new ListViewItem(subitems, -1);
lv.Items.Add(item);
++nRow;
}
dr.Close();
}
catch (SqlException ex)
{
throw new Exception(ex.Message);
}
}
F11单步调试
{
ListViewItem item = new ListViewItem();
item.Text = if(row[0] == null) ? "Null" : row[0].ToString(); for(int i = 1; i< row.ItemArray.Length; i++)
{
item.SubItems.Add(row[i].ToString());
}
Array.Resize(ref items, items.Length + 1);
items.SetValue (item, items.Length - 1);
}