高分求助,请教一个datagridview直接进行添加修改的问题

jcxpy910 2016-04-22 10:17:56
如题:在一个datagridview中,点击查询按钮后,会调用SQL中的存储过程并进行行列转换后将数据显示在datagridview中。如图:


上面显示的2016/3/18这种列,其实是数据表中“时间”这个字段的值,是经过行列转换后以一行的形式显示(如果不转换,时间就是以列的形式显示。)
问题:如果不经过行列转换,那么使用



 private void 查询_Click(object sender, EventArgs e)
{
SqlConnection sqlcon = new SqlConnection("server=WIN7U-20151010U;uid=sa;pwd=gsa4tb;database=xsxxdb");
SqlDataAdapter sda = new SqlDataAdapter();
try
{
if (ds.HasChanges())
{
sqlcon.Open();
//用SqlCommandBuilder自动为SqlDataAdapter生成Insert、Update、Delete命令

SqlCommandBuilder cb = new SqlCommandBuilder(sda);

sda.Update(ds);

dataGridView1.Update();

MessageBox.Show("保存成功!");

sqlcon.Close();
}
}
catch
{
MessageBox.Show("数据错误");

}




}



可以直接在datagridview中进行添加,修改。
现在进行行列转换过后,就不能进行添加,修改了。
请问有没有办法在转换过后也可以直接在datagridview中操作呢?
我估计式sqlcommandbulider无法识别经过转换过后的行列数据,在进行数据传递时发现无法与数据库中的字段对应,请问各位大神到底应该怎么办才能实现这个功能啊,我研究了几个月了。。。
...全文
43 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
jcxpy910 2016-04-22
  • 打赏
  • 举报
回复
查询事件按钮:
 SqlConnection conn = new SqlConnection("server=WIN7U-20151010U;uid=sa;pwd=gsa4tb;database=xsxxdb");
           // sda = new SqlDataAdapter("SELECT * FROM CJ where 科室='"+comboBox1.Text.ToString()+"' ", conn);

            SqlCommand cmd = new SqlCommand("dy ", conn);
            cmd.CommandType = CommandType.StoredProcedure;//
            cmd.Parameters.Add("@mm", SqlDbType.VarChar, 100).Value = comboBox1.Text;
            cmd.Parameters.Add("@nn", SqlDbType.VarChar, 100).Value = dateTimePicker1.Value.ToShortDateString();
            cmd.Parameters.Add("@aa", SqlDbType.VarChar, 100).Value = dateTimePicker2.Value.ToShortDateString();
            sda = new SqlDataAdapter(cmd);
            DataTable dt = new DataTable();
            ds.Clear();
            sda.Fill(ds);
            dataGridView1.DataSource = ds.Tables[0];
            dataGridView1.Show();
           // dataGridView1.Columns[0].Visible = false;
            dataGridView1.Rows[0].Selected = false;
SQLCOMMANDBULIDER(数据更新按钮):
SqlConnection sqlcon = new SqlConnection("server=WIN7U-20151010U;uid=sa;pwd=gsa4tb;database=xsxxdb");

            try
            {
                if (ds.HasChanges())
                {
                    sqlcon.Open();
                    //用SqlCommandBuilder自动为SqlDataAdapter生成Insert、Update、Delete命令

                    SqlCommandBuilder cb = new SqlCommandBuilder(sda);

                    sda.Update(ds);

                    dataGridView1.Update();

                    MessageBox.Show("保存成功!");

                    sqlcon.Close();
                }
            }
            catch
            {
                MessageBox.Show("数据错误");

            }
问题其实找到了,在数据库中的表是这个样子的: 显示出来就是1楼的样子。

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧