使用MSSQL Server中的help datatable填充行

时间:2016-05-19 11:33:24

标签: c# datagridview

我创建了一个没有绑定源的表,我想查看位于MYSQL中的数据库中的表中的行。此代码将创建一个表并连接到DataGridView:

cmd.Parameters.Add("@hut", SqlDbType.Int);
            cmd.Parameters["@hut"].Direction = ParameterDirection.Input;
            cmd.Parameters["@hut"].Value = 4;
            cmd.Parameters.Add("@spisanie_id", SqlDbType.BigInt);
            cmd.Parameters["@spisanie_id"].Direction = ParameterDirection.Input;
            cmd.Parameters["@spisanie_id"].Value = Convert.ToInt64(IDtextBox.Text);
            cmd.Parameters.Add("@prichanie_spis", SqlDbType.NVarChar);
            cmd.Parameters["@prichanie_spis"].Direction = ParameterDirection.Input;
            cmd.Parameters["@prichanie_spis"].Value = PrichinatextBox.Text;
            cmd.Parameters.Add("@data_spis", SqlDbType.Date);
            cmd.Parameters["@data_spis"].Direction = ParameterDirection.Input;
            cmd.Parameters["@data_spis"].Value = dateEdit.Value.Date;

此记录是否在Form_Load代码中,以及如何在DataGridView中使用外键?问题是,要显示没有适配器的行的值,例如,在DataGridView中填充行并使用外键。请帮助我,谢谢你的答案!

我在datagridview中找到了另一种查看方式,其中error:无法将参数值从String转换为Int64:

    dataGridView1.Rows.Clear();
    cmd = new SqlCommand("dbo.sp_test", connection);
    cmd.CommandType = CommandType.StoredProcedure;
    connection.Open();
    cmd.Parameters.Add("@taw", SqlDbType.Int);
    cmd.Parameters["@taw"].Direction = ParameterDirection.Input;
    cmd.Parameters["@taw"].Value = 4;
    cmd.Parameters.Add("@value", SqlDbType.BigInt);
    cmd.Parameters["@value"].Direction = ParameterDirection.Input;
    cmd.Parameters["@value"].Value = DBNull.Value;
    cmd.Parameters.Add("@value1", SqlDbType.NVarChar);
    cmd.Parameters["@value1"].Direction = ParameterDirection.Input;
    cmd.Parameters["@value1"].Value = DBNull.Value;
    cmd.Parameters.Add("@value2", SqlDbType.Date);
    cmd.Parameters["@value2"].Direction = ParameterDirection.Input;
    cmd.Parameters["@value2"].Value = DBNull.Value;
    rdr = cmd.ExecuteReader();
    while (rdr.Read())
    {
        dataGridView1.Rows.Add(rdr["your_column"].ToString(), (string)rdr["your_column1"].ToString(), (string.Format("{0:yyyy-MM-dd}", rdr["your_column"])).ToString());                   
    }
    connection.Close();

我可以使用这种方式,但程序错误:“不要更正输出格式”

{{1}}

我找到了方法并与您分享:

{{1}}

1 个答案:

答案 0 :(得分:0)

您需要对某些参数使用Parse()

  ...
     cmd.Parameters.Add("@spisanie_id", SqlDbType.BigInt).Value = BigInteger.Parse(IDtextBox.Text);
     cmd.Parameters.Add("@prichanie_spis", SqlDbType.NVarChar).Value = PrichinatextBox.Text;
     cmd.Parameters.Add("@data_spis", SqlDbType.Date).Value = DateTime.Parse(dateEdit.Text);
    ...