3

ストアド プロシージャに問題があります。

このコードは機能します( でListBox

private void button4_Click(object sender, EventArgs e)
{
   string connectionString = ConfigurationManager.ConnectionStrings["connString"].ConnectionString;
   SqlConnection connection = new SqlConnection(connectionString);

   string sqlCmd = "Drie duurste producten";

   SqlCommand cmd = new SqlCommand(sqlCmd, connection);

   cmd.CommandType = CommandType.StoredProcedure;
   cmd.CommandText = sqlCmd;

   connection.Open();

   using (SqlDataReader reader = cmd.ExecuteReader())
   {
      while (reader.Read())
      {
          listBox1.Items.Add(reader.GetValue(0).ToString()); 
      }
   }   

   connection.Close();
}

DataGridViewしかし、このデータをではなくに追加するにはどうすればよいListBoxですか?

ありがとうございました!

4

7 に答える 7

1

SqlDataAdapterは、それを行う最も簡単な方法です。

ただし、DataTableを作成して手動で入力し、DataGridViewのDataSource値をDataTableインスタンスに割り当てることもできます。

        ...

        DataTable dt = new DataTable("test");
        dt.Columns.Add("test");

        using (SqlDataReader reader = cmd.ExecuteReader())
        {
            while (reader.Read())
            {
                DataRow dr = dt.NewRow();
                dr[0] = reader.GetValue(0).ToString();
                dt.Rows.Add(dr);
            }
        }  

        dataGridView1.DataSource = dt;

        ....
于 2012-10-21T16:30:31.067 に答える
1
    static public long Insert(BillAO ao)
    {
        try
        {
            SqlParameter[] Params =
            {
                new SqlParameter("@Status",ao.Status)
                , new SqlParameter("@BAID",ao.BAID)
                , new SqlParameter("@PhieuKhamID",ao.PhieuKhamID)
                , new SqlParameter("@ThuNganID",ao.ThuNganID)
                , new SqlParameter("@Ngay",ao.Ngay)
                , new SqlParameter("@SoTien",ao.SoTien)
                , new SqlParameter("@LyDo",ao.LyDo)
                , new SqlParameter("@GhiChu",ao.GhiChu)
                , new SqlParameter("@CreatedBy",ao.CreatedBy)
                , new SqlParameter("@CreatedTime",ao.CreatedTime)
                , new SqlParameter("@LastModifiedBy",ao.LastModifiedBy)
                , new SqlParameter("@LastModifiedTime",ao.LastModifiedTime)
            };
            int result = int.Parse(SqlHelper.ExecuteScalar(HYPO.Utils.Config.ConnString, CommandType.StoredProcedure, "SP_Bill_Insert", Params).ToString());
            return result;
        }
        catch (Exception ex)
        {
            if (ex.Message.Contains("duplicate"))
            {
                return -2;
            }
            return -1;
        }
    }
于 2013-04-04T04:27:24.420 に答える
0

DataTableまたはDataSetを使用してデータを入力できます。...ここでは、DataTableを使用しました。

Datatable data = new Datatable();
using (SqlDataAdapter adp = new SqlDataAdapter())
{
    adp.SelectCommand = cmd;
    adp.Fill(data);
    GridView1.DataSorce = data;
    GridView1.DataBind();        <--- Needed to bind GridView at a time While Filling DataTable data
}  

また、DataTableをGridview1に割り当てる前に、この方法でDataTableにデータが含まれているかどうかを確認することもできます。

if(data.Rows.Counnt > 0)
{
        GridView1.DataSorce = data;
        GridView1.DataBind();     
}
于 2012-10-21T07:10:18.740 に答える
0
public void whateverToolStripMenuItem_Click(object sender, EventArgs e) {
// A previously declared and instantiated OpenFileDialog, i put it from Design Mode, but you can just
// declare it as 
OpenFileDialog dlgImport = new OpenFileDialog();
//We show the dialog:
dlgImport.ShowDialog();
// We declare a variable to store the file path and name:
string fileName = dlgImport.FileName;
try {
    // We invoke our method, wich is created in the following section, and pass it two parameters
    // The file name and .... a DataGridView name that we put is the Form, so we can also see what
    // We imported. Cool, isn't it?
    importExcel(fileName, gridMain);
}
// It is best to always try to handle errors, you will se later why it is OleDbException and not
catch (OleDbException ex) {
    MessageBox.Show("Error ocurred: " + ex.Message);
}

}

于 2013-04-10T07:38:05.033 に答える