0
現在、Excelシートからデータをsql server.iにインポートしていますが、Excelシートから空の行を削除するためのコードが記述されています。データグリッドビューでデータを表示しようとしていますDataGridviewデータソースのメソッド名です。しかし、正しいか間違っているのか誰も私に言うことはできません。どのデータも表示されません。これはデータがデータグリッドビューに表示されない
public partial class Form9 : Form
{
DataSet dsExcel = new DataSet();
public Form9()
{
InitializeComponent();
}
private void btnUpload_Click(object sender, EventArgs e)
{
//String input = string.Empty;
OpenFileDialog filepath = new OpenFileDialog();
filepath.Filter = "Excel Files(*.xls)|*.xls|Excel Files(*.xlsx)|*.xlsx|Text Files(*.txt)|*.txt|All Files(*.*)|*.*";
filepath.InitialDirectory = "C:";
filepath.Title = "Select a file";
if (filepath.ShowDialog() == DialogResult.OK)
txtExcelFile.Text = filepath.FileName;
if (txtExcelFile.Text == string.Empty)
return;
}
private void btnImport_Click(object sender, EventArgs e)
{
OleDbConnection cnn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + txtExcelFile.Text + "';Extended Properties= 'Excel 8.0;HDR=Yes;IMEX=1'");
cnn.Open();
try
{
OleDbDataAdapter data = new OleDbDataAdapter("select * from [Customers$]", cnn);
data.Fill(dsExcel);
dgvCustomers.ColumnHeadersVisible = false;
dgvCustomers.DataSource = GetExcelData();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
//cnn.Close();
}
}
public DataSet GetExcelData()
{
DataTable ExcelTable = new DataTable();
List<int> rowToRemove = new List<int>();
//DataRow ExcelRow = new DataRow();
foreach (DataRow excelrow in dsExcel.Tables[0].Rows)
{
bool IsEmpty = false;
foreach (object item in excelrow.ItemArray)
{
if (String.IsNullOrEmpty(item.ToString()))
{
IsEmpty = true;
break;
}
else
{
IsEmpty = false;
}
}
if (IsEmpty)
{
rowToRemove.Add((dsExcel.Tables[0].Rows.IndexOf(excelrow)));
}
}
for (int i = rowToRemove.Count - 1; i >= 0; i--)
{
dsExcel.Tables[0].Rows.RemoveAt(rowToRemove[i]);
}
return dsExcel;
}
}
}
おかげで、それは私が見てきた中でdoubt..i 1を持っているworked..but datagridviewデータソースがDatasetである例はほとんどありません。なぜデータセットではなくデータセットを割り当てているのかを知りたいのです。私は新しいコーディングで最初から始めます。 – Nazima
@ Nazimaデータセットをデータベースと考えると、複数のデータテーブルを保持することができます。 – LarsTech