gpt4 book ai didi

c# - 使用 C#.net 中的数据表将数据插入数据集中

转载 作者:太空狗 更新时间:2023-10-29 23:51:57 25 4
gpt4 key购买 nike

我在不使用 SQL 服务器的情况下使用数据集在 Crystal 报表上显示数据。

我的问题是数据没有插入到表中。

这是我的代码:

try
{
DataSet2 ds1 = new DataSet2();
DataTable t1 = ds1.Tables.Add("report1");
t1.Columns.Add("mtrno", Type.GetType("System.String"));
t1.Columns.Add("pf1", Type.GetType("System.String"));
t1.Columns.Add("pf2", Type.GetType("System.String"));
t1.Columns.Add("pf3", Type.GetType("System.String"));
t1.Columns.Add("pf4", Type.GetType("System.String"));
t1.Columns.Add("pf5", Type.GetType("System.String"));
t1.Columns.Add("pf6", Type.GetType("System.String"));
t1.Columns.Add("pf7", Type.GetType("System.String"));
t1.Columns.Add("rel", Type.GetType("System.String"));

//t3.Columns.Add("r_no",Type.GetType("System.String"));
//t3.Columns.Add("date", Type.GetType("System.String"));
//t3.Columns.Add("type", Type.GetType("System.String"));
//t3.Columns.Add("const", Type.GetType("System.String"));
//t3.Columns.Add("volt", Type.GetType("System.String"));
//t3.Columns.Add("class", Type.GetType("System.String"));
//t2.Columns.Add("rel", Type.GetType("System.String"));

DataRow r1;
// DataRow r3;

textBox1.Clear();
DirectoryInfo d_info = new DirectoryInfo("D:\\");
FileInfo[] f_info = d_info.GetFiles("*.txt");
foreach (FileInfo fi in f_info)
{
string fname = @"D:\\" + Path.GetFileNameWithoutExtension(fi.Name) + ".txt";
if (fname.Contains(listBox1.SelectedItem.ToString()))
{
StreamReader sread1 = new StreamReader(fname);
string line = null;
while ((line = sread1.ReadLine()) != null)
{

if (line.Contains("[Report Header]|" + comboBox3.SelectedItem.ToString()))
{
line = line.Replace("[Report Header]|", "");
string[] r_words = line.Split('|');

line = sread1.ReadLine();
if (line.Contains("[Field Heading]|"))
{
string[] f_words = line.Split('|');
foreach (string s in f_words)
{
textBox1.Text = textBox1.Text + s;
}
}
textBox1.Text = textBox1.Text + Environment.NewLine;
for (int i = 0; i < 32; i++)
{
line = sread1.ReadLine();
if (line.Contains("[Meter_Record]|") || line.Contains(comboBox4.SelectedItem.ToString()))
{
line=line.Replace("[Meter_Record]|","");
string[] m_words = line.Split('|');
r1 = t1.NewRow();
r1["mtrno"] = m_words[0].ToString();
r1["pf1"] = m_words[1].ToString();
r1["pf2"] = m_words[2].ToString();
r1["pf3"] = m_words[3].ToString();
r1["pf4"] = m_words[4].ToString();
r1["pf5"] = m_words[5].ToString();
r1["pf6"] = m_words[6].ToString();
r1["pf7"] = m_words[7].ToString();
r1["rel"] = "yes";
//for (int j = 0; j < m_words.Length;j++ )
//{
// textBox1.Text = textBox1.Text + m_words[j];
//}
}
//textBox1.Text = textBox1.Text + Environment.NewLine;
}
}
}
}
}

CrystalReport2 objRpt1 = new CrystalReport2();
//objRpt.SetDataSource(ds.Tables["h_report"]);
objRpt1.SetDataSource(ds1.Tables["report1"]);
crystalReportViewer1.ReportSource = objRpt1;
crystalReportViewer1.Zoom(1);
crystalReportViewer1.Refresh();
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}

最佳答案

一般要加列看the solution here , 并添加数据:

DataRow anyRow = ds1.report1.NewRow();

anyRow.mtrno = 123;
anyRow.pf1 = "abc";

report1.Rows.Add(anyRow);

编辑:(回应您的评论)

在你的代码中你没有添加新行,你定义了一个但从不添加它,即

report1.Rows.Add(anyRow);

看看你的 for 循环,即

r1 = t1.NewRow();
r1["mtrno"] = m_words[0].ToString();

但是您永远不会将这个新行添加到表中。这就是为什么我给了你一个如何“添加”行的例子。

关于c# - 使用 C#.net 中的数据表将数据插入数据集中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13743007/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com