我需要你的帮助。我有两个excel文件,我想将它们显示到datagridview中。我发现一个问题,datagridview只是显示我的一个数据而不是全部。我想显示这些数据:
这些是来自[Sheet1 $]
的数据WSID Tipe Mesin Lokasi
1234 MF A
5678 MF B
9876 CRM C
这些是来自[Data $]
的数据private void TampilDataSaldo()
{
RadioButton[] radiobtn = new RadioButton[] { MFRB, CRMRB };
string dir = LokasiSaldo.Text;
konek.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + dir + ";Extended Properties='Excel 12.0 xml;HDR=YES;IMEX=1'";
koneksi.ConnectionString = string koneksi = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Dokumen\Alfon\Kerja\BCA\Program\Program-Pengisian-Uang-ATM-BCA-SOY\Program-Pengisian-Uang-ATM-BCA-SOY\bin\x86\Debug\ATM SLA SURABAYA.xlsx;Extended Properties='Excel 12.0 xml;HDR=YES';";
int saldo;
Int32.TryParse(SaldoTB.Text, out saldo);
int thresholdcas;
Int32.TryParse(SaldoTB.Text, out thresholdcas); //baca angka yang diinput di NominalBox dan ubah jadi integer
OleDbConnection kon = new OleDbConnection(koneksi);
OleDbCommand command = kon.CreateCommand();
OleDbCommand command1 = kon.CreateCommand();
if(radiobtn[0].Checked)
{
kon.Open();
command.CommandText = "select * from [Data$] where [Tipe Mesin] = '" + radiobtn[0].Text + "'";
OleDbDataReader reader = command.ExecuteReader();
while(reader.Read())
{
konek.Open();
System.Data.DataTable aksesdatatabel;
aksesdatatabel = konek.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
konek.Close();
OleDbCommand command2 = new OleDbCommand
(
"select WSID, Lokasi, Saldo from [Sheet1$] where WSID = '" + reader["WSID"].ToString() + "'", konek
);
DataSet coba = new DataSet();
OleDbDataAdapter adapter = new OleDbDataAdapter(command2);
adapter.Fill(coba);
var table = coba.Tables[0];
var view = new DataView(table);
view.RowFilter = string.Format("Saldo < '{0}'", thresholdcas);
ViewDataSaldoGV.DataSource = view;
}
kon.Close();
}
}
如果按下radiobutton MF,将显示的数据是Tipe Mesin值为MF的数据。实际上应该显示1234和5678,但它只显示5678.任何人都可以帮助我吗?
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<!-- identity transform -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="PreIJP">
<xsl:copy>
<xsl:value-of select="../AnnString"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
答案 0 :(得分:0)
正如其他人在评论中所述。您循环遍历每个项目,而不是将数据添加到循环外部的集合中,每次都要创建新对象。
您需要将数据集移动到while循环之外,只需在循环内部向其添加行即可。这样您就可以添加一个集合,而不是创建和不使用多个1记录数据集