我想在文本框中的值之后搜索数据表的列。我想在ISBN-Numbers
之后搜索这是我的表“书”:
DataColumn bookName = new DataColumn("BookName", typeof(string));
DataColumn bookId = new DataColumn("BookId", typeof(int));
DataColumn isbn = new DataColumn("ISBN", typeof(string)); //should be an EAN-13
Barcodeenter code here
DataColumn book_authorId = new DataColumn("Book_AuthorId", typeof(int));
DataColumn bookprice = new DataColumn("Price", typeof(decimal));
DataColumn authorName = new DataColumn("AuthorName", typeof(string));
DataColumn authorId = new DataColumn("AuthorId", typeof(int));
DataColumn geschlecht = new DataColumn("Geschlecht", typeof(string));
现在,我怎样才能搜索isbn,而不是从整个表中获取值? 在列表框中,我想要输出。在那里,我希望从ISBN中包含文本框中文本的书中获取所有值。
我的代码我现在要在isbn之后进行搜索:
string isbn = _tbIsbnSuche.Text;
string result = String.Empty;
string file = _tempPath + @"\book_authorData.xml";
XmlTextReader r = new XmlTextReader(file);
if (isbn != String.Empty)
{
_lbInformation.Text = String.Empty;
_lBdatenOutput.BackColor = Color.LightGoldenrodYellow;
_lBdatenOutput.Items.Clear();
_lBdatenOutput.Items.Insert(0, "Please Wait!");
_lBdatenOutput.Items.Insert(1, "Gefundene ISBN-Nummern:");
while (r.Read())
{
if (r.Value.Trim().IndexOf(isbn) != -1 && r.Value.Trim().Contains("-") && r.Value.Length >= 13)
{
_lBdatenOutput.Items.Add(r.Value.Trim());
}
}
tim.Enabled = true;
}
else
{
_lbInformation.ForeColor = Color.Red;
_lbInformation.Text = _suchfehler;
}
//Wenn keine Datensätze gefunden wurden
if (_lBdatenOutput.Items.Count == 2)
{
tim.Enabled = true;
_lBdatenOutput.BackColor = Color.OldLace;
_lBdatenOutput.Items.Add(String.Concat("Es wurden keine Bücher welche in der ISBN-Nummer die Zeichenfolge ", "\"", isbn, "\"", " enthalten gefunden"));
}
但是这会搜索所有数据集,当我在其他字段中有一个值与搜索字符串相同时,它也会出现在搜索结果中。
答案 0 :(得分:0)
您可以通过名称访问DataRow
列,例如row["ISBN"]
答案 1 :(得分:0)
嘿伙计们我找到了解决方案。这个解决方案可能比needet更复杂,但我找不到另一个解决方案。几个小时后,我有以下代码:
string _seperator1 = "-------------------------------------------------------------------------------------------------------------------------------- \n";
string isbn = _tbIsbnSuche.Text;
DataView custView = new DataView(_dset.Tables["Book"], "", "ISBN", DataViewRowState.CurrentRows);
{
_lBdatenOutput.Items.Clear(); //Delete existing Objects from the Output
foreach (DataRowView myDRV in custView)
{
DataRow dr = myDRV.Row;
if((dr["ISBN"].ToString().IndexOf(isbn) >= 0))
{
foreach (DataColumn cl in custView.Table.Columns)
{
_lBdatenOutput.Items.Add("Spalten-Name: " + " \t " + cl.ColumnName + " \t" + dr[cl]);
}
_lBdatenOutput.Items.Add(_seperator1); //Insert a seperator
}
}
}
我希望我可以帮助这个人