从数据集的数据表中读取值
本文关键字:读取 数据表 数据集 | 更新日期: 2023-09-27 18:18:28
我想在文本框的值之后搜索数据表的列。我想搜索ISBN-Numbers
这是我的Table "Book":
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"));
}
但这搜索所有的数据集,当我有一个值在另一个字段与搜索字符串相同,它也出现在搜索结果。
您可以通过名称访问DataRow
的列,例如row["ISBN"]
嘿,伙计们,我找到了一个解决方案。这个解决方案可能比需要的更复杂,但我找不到其他的解决方案。几个小时后,我得到了以下代码:
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
}
}
}
我希望我能帮到一些人。