我没有什么问题我试图在我将从SQL Server数据库中检索的数据中添加序列号,如下所示。
public partial class Form1 : Form
{
SqlConnection con = new SqlConnection(@"Server=.;database=test;integrated security=false;user id=sa;pwd=@admin00");
SqlCommand com = new SqlCommand();
SqlDataReader dr;
public Form1()
{
InitializeComponent();
com.CommandText = "select book_name from Table_book";
com.Connection = con;
con.Open();
dr = com.ExecuteReader();
while (dr.Read())
{
for (int i = 1; i <= dr.FieldCount; i++)
{
listBox1.Items.Add(i+"-"+dr[0].ToString());
i += i;
}
}
if (listBox1.Items.Count == 0)
{
MessageBox.Show("No Data Found");
}
dr.Close();
con.Close();
}
结果将是这样的:
TY all
答案 0 :(得分:0)
Add
能够对对象进行操作,而不仅仅是对字符串进行操作。
为什么呢?
class ModelClass {
// for use in algorithm, may be presented in GUI or not
int Sequence { get; set; }
string Description { get ; set ;}
// ... what You want, is is typical model class
override string ToString() {
// return what you want, is presented in GUI
return Descrition;
}
ModelClass( string n, int i ) ...
}
...
listBox.Items.Add( new ModelClass(i.ToString(), dr[...] // sequence )
现在,您可以从Items中检查任何内容,因为这些是ModelClass的对象。
手写的代码,未在IDE中测试过。
答案 1 :(得分:0)
我只是使用我的服务器Id序列来解决这个问题:
SqlConnection con = new SqlConnection(@"server=.;database=test;integrated security=false;user id=sa;pwd=@admin00");
con.Open();
SqlCommand sqlcom = new SqlCommand("select book_id,book_name from Table_book", con);
SqlDataReader sqlDR=sqlcom.ExecuteReader();
while(sqlDR.Read())
{
listBox1.Items.Add(sqlDR["book_id"].ToString()+"-"+sqlDR["book_name"].ToString());
}
答案 2 :(得分:-1)
您正在设置&#34;序列号&#34;在使用dr.Read()
迭代每一行时,结果中返回的字段的数量。
for
循环不需要它。您应该做的是将计数器变量设置在dr.Read()
之外,然后在...内增加...
int i = 1;
while (dr.Read())
{
// set listbox item text
listBox1.Items.Add(i.ToString() + "-" + dr[0].ToString());
i+=1;
}