为什么这对我不起作用? C#

时间:2017-04-08 07:37:40

标签: c# class datatable

我尝试制作一个程序,这样我就可以看到我每年使用多少电,水等。我创建了三个包含

的表单
  1. 的MainForm
  2. 我可以添加数据和
  3. 的表单
  4. " MainForm"
  5. 的设置

    MainForm上有一个DataGridView,在一个类loadlist.cs中我输入了代码,使用DataTable从SQL Server加载数据。

    现在我希望表单2访问loadlist.cs并且它正常工作 - 我得到一个MessageBox.Show()结果来检查。

    但是当我想将数据添加到DataGridView时,它无法正常工作。

    如何?

    来自" MainForm.cs"的代码:

    Jojo op = new Jojo();
    
    Gridview_index.DataSource = GetTable();
    Gridview_index.DataSource = op.JojoGetir("Elforbrug");
    

    代码来自" loadlist.cs":

    public List<GetValues> JojoGetir(string input) {
        AutoClosingMessageBox.Show(input, "Vis", 1000);
    
        List<GetValues> JojoListesi = new List<GetValues>();
    
        string sql = "SELECT * FROM " + input;
    
        con.Open();
        cmd = new SqlCommand(sql, con);
    
        SqlDataReader dr = cmd.ExecuteReader();
    
        while (dr.Read())
        {
            GetValues ogr = new GetValues();
            ogr.Id = Convert.ToInt32(dr [0]);
            ogr.Dato = Convert.ToDateTime(dr [1].ToString());
            ogr.Aflæsning = Convert.ToInt32(dr [2]);
            ogr.Forskel = Convert.ToInt32(dr [3]);
    
            JojoListesi.Add(ogr);
        }
    
        con.Close();
        return JojoListesi;
    }
    

    来自&#34; add.cs&#34;的代码:

    if (Vaelgforbrug.SelectedItem != null && 
        string.IsNullOrWhiteSpace(IndtastForbrug.Text) == false) {
        cmd.Connection = cn;
    
        cn.Open();
        MessageBox.Show((DateTime.Parse(datoForbrug.Value.ToShortDateString())).ToString("dd-MM-yyyy"));
    
        cmd.CommandText = "insert into " + Vaelgforbrug.SelectedItem + "forbrug (Dato, Aflæsning, Forskel) VALUES ('" + (DateTime.Parse(datoForbrug.Value.ToShortDateString())).ToString("dd-MM-yyyy") + "', '" + IndtastForbrug.Text + "','" + 0 + "')";
        cmd.ExecuteNonQuery();
    
        AutoClosingMessageBox.Show("Gemt!", "Opsætning", 1000);
        cn.Close();
        Close();
    
        var op = new Jojo();
        var f = new Forbrug();
    
        f.Gridview_index.DataSource = op.JojoGetir(Vaelgforbrug.SelectedItem + "forbrug");
    }
    

    来自&#34; AutoClosingMessageBox&#34;我得到了&#34;输入&#34;我可以看到它被触发但没有输入数据&#34; Gridview_index&#34;。它将我想要添加到SQL Server的数据保存到Gridview_index。

0 个答案:

没有答案