我的数据库中有一个充满ID的字符串
当我调用数据库来检索数据时,我将所有数据存储在一个字符串中,所有ID都在<br />
之间。
cmd = new OleDbCommand(getCode, conn);
rdr = cmd.ExecuteReader();
while (rdr.Read())
{
custCodes += rdr[0].ToString() + "<br />";
}
现在我想逐个从字符串中运行ID,以从数据库中检索其余的数据。
我想使用子字符串逐个检查ID。 到目前为止,我有这样的事情:
String str=custCodes ;
int index = 0;
while (index != first.Length)
{
int indexOf = first.IndexOf("<br />");
str = first.Substring(indexOf);
index += 1;
}
但是我对我应该如何继续感到困惑。 我必须使用数组,并将代码存储在数组中,然后通过数据库运行它吗? 我知道我的代码是错误的,但我对如何解决它感到困惑。 子串从未成为编码的最佳部分。
答案 0 :(得分:1)
为什么用'
'存储id??要逐个过滤结果并显示它们?然后请将结果存储在数据表或arraylist中。然后,您可以使用索引或列名称过滤结果。喜欢
更好的方法是将所有列或所需列存储到数据表中,如果需要
列名“id”,“name”,“email”
DataTable getdt(){
MySqlConnection conn = null;
MySqlDataAdapter da ;
DataTable dt = new DataTable();
String sql="select id,name,email from tablename ";
conn = new MySqlConnection(cs);
da=new MySqlDataAdapter(sql,conn);
conn.Open();
try
{
DataSet dsl = new DataSet();
da.Fill(dsl,"Table");
dt = dsl.Tables["Table"];
return dt;
}
catch (MySqlException ex)
{
String err = ex.Message;
return dt;
}
}
并在前端
只需执行以下代码即可将其拆分
DataTable ddt=new DataTable();
ddt=getdt();
int le=ddt.Rows.Count;
for(int i=0; i<le; i++){
int id=ddt.Rows[i]["id"];
String name=ddt.Rows[i]["name"].ToString();
}
你也可以使用ArrayList。
不需要找到结果的id,然后为每个id运行dbcall以提取其他列。这会降低您的申请速度。请使用sql adapter而不是mysql adapter。
答案 1 :(得分:0)
您可以使用String.Split方法从字符串中获取ID数组
以下是文档:
http://msdn.microsoft.com/en-us/library/tabh47cf.aspx
var ids = custCodes.Split("<br />");
foreach(var item in ids)
{
//Check the current id
}
答案 2 :(得分:0)
似乎是一种非常奇怪的做事方式,但你可以使用以下方法: -
string[] custIds = custCodes.Split("<br />");
foreach(string s in custIds)
{
int id = Convert.ToInt32(s);
//Get record from DB with id etc..
}
答案 3 :(得分:0)
string[] ids = yourIds.Split(new string[] { "<br />" }, StringSplitOptions.RemoveEmptyEntries);
使用ids数组,您可以使用StringBuilder来形成一个大的SQL字符串来执行。
答案 4 :(得分:0)
使用“split-chars”数组将字符串拆分为数组 - 在您的情况下,只需<br />
:
var ids = idList.Split(new string[]{"<br />"}, StringSplitOptions.None);
这应该为您提供一个类型字符串数组,您可以将其解析为int
,或者您可能需要的任何内容。
答案 5 :(得分:0)
我可以用Java给你一个例子。如果您在CustCodes中保存了所有ID,则可以这样做:
String[] ids = CustCodes.split("<br />");
for(int i = 0; i < ids.lenght; i++)
system.out.println(ids[i])
我希望这可以帮到你。 你应该在c#
中找到相同的功能(拆分)如果您需要更多帮助,请告诉我。 :)