我需要将Datagridview中的数据插入Sql Server 2008中的数据库。但是不起作用。

“ .Rows(i)”消息错误:

'不可使用的成员'System.Windows.Forms.DataGridView.Rows'不能像方法一样使用。

代码C#(Windows窗体)

SqlConnection Conn = new SqlConnection();
SqlCommand cmd = new SqlCommand();
StringBuilder sb = new StringBuilder();
SqlTransaction tr;

private void testExcel_Load(object sender, EventArgs e)
{
    string appConn = ConfigurationManager.ConnectionStrings["connDB"].ConnectionString;
    Conn = new SqlConnection();
    if (Conn.State == ConnectionState.Open)
    {
        Conn.Close();

    }
    Conn.ConnectionString = appConn;
    Conn.Open();
}

private void button2_Click(object sender, EventArgs e)
{
    tr = Conn.BeginTransaction();

    sb.Remove(0, sb.Length);
    sb.Append("INSERT INTO tableAset (Id,AsId,AsRefid,Invid,TypeName)");
    sb.Append("VALUES (@Id,@AsId,@AsRefid,@Invid,@TypeName)");
    string sqlSave = sb.ToString();

    for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
    {     
      cmd.CommandText = sqlSave;
      cmd.CommandType = CommandType.Text;
      cmd.Connection = Conn;
      cmd.Transaction = tr;
      cmd.Parameters.Clear();

      cmd.Parameters.Add("@Id", SqlDbType.Int).Value = dataGridView1.Rows(i).Cells(0).Value;
      cmd.Parameters.Add("@AsId", SqlDbType.VarChar).Value = dataGridView1.Rows(i).Cells(1).Value;
      cmd.Parameters.Add("@AsRefid", SqlDbType.VarChar).Value = dataGridView1.Rows(i).Cells(2).Value;
      cmd.Parameters.Add("@Invid", SqlDbType.VarChar).Value = dataGridView1.Rows(i).Cells(3).Value;
      cmd.Parameters.Add("@TypeName", SqlDbType.VarChar).Value = dataGridView1.Rows(i).Cells(4).Value;

      cmd.ExecuteNonQuery();
      tr.Commit();
      MessageBox.Show("It's Done!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
    }
}

非常感谢您的宝贵时间。 :)

#1楼 票数:0

您应该改用rows [i] ,单元格也一样:

dataGridView1.Rows[i].Cells[0].Value

看一下Rows属性

#2楼 票数:0

只需用方括号替换圆括号

dataGridView1.Rows[i].Cells[0].Value;

#3楼 票数:0

我建议使用SqlBulkCopy。您可以轻松获取DataTable格式的GridView数据,并且可以将DataTable传递给SqlBulkCopy WriteToServer。 https://www.aspsnippets.com/Articles/Using-SqlBulkCopy-to-insert-bulk-data-from-GridView-to-database-in-ASPNet.aspx

  ask by nettoon493 translate from so

未解决问题?本站智能推荐:

3回复

在SQL中选择TOP行,并获得5行表

Mytable: 结果: 但是我需要输出: SQL代码?
1回复

如何使用一个SQL查询将任何数据库结构导入xml?

请任何机构知道如何将我的数据库结构作为xml 我有数据库:exdb 我有桌子:extbl1 我有专栏:excol1 我有专栏:excol2 我有专栏:excol3 并列:excol4 ......等 我怎样才能得到以下结构
1回复

比较SQl日期和C#输入值

嗨,我必须比较从C#代码发送到SQLServer的日期时间以及毫秒。 我将日期转换如下。 我已将上述日期设置为SP。 但是,当我将其发送到数据库时,仅以下值从C#代码发送“ 2013-05-06 14:33:13 PM”。 当我尝试转换数据库中的值时,那里缺少毫秒值。 我在SQl
1回复

将数据从6个表合并到1gridview中的问题

我已经将6tables与第7个表合并,当我与Gridview绑定时,我将获得如下数据。 但是我想让数据并排。 在GridView下面,我得到了: 我希望我的gridview如下所示: 这是我的Sql查询,它针对6个不同的主题运行,将数据存储到数据表中,然后合并到另一个数据表中。
3回复

更新日期完整列,仅更改一个数据字段

我有2个表表A和表B 表A数据 表B数据 我想将表B Arrives_on日期2013-08-09更新到2012-08-14,其中enquiry_Id为130时,我的表A数据将自动更改check_In和Check_Out日期。 喜欢
2回复

显示数据库中的数据而不指定列

我有一个简单的登录页面。 我想要做的是当登录正确时,我想显示所有列 - 我不想手动指定在while循环中显示哪些列。 这是我使用SQL Server 2008 express在C#中的示例: } 我知道这不是最好的实现。 如何用注册表中返回的所有内容填充lblResult?
1回复

监视SQL数据库表更改的设计注意事项

我正在分配一个任务,以监视和记录多层.NET 4 WPF,WCF,SQL 2008应用程序中的各种“系统级消息”,用消息表示我的应用程序中发生的事件的详细信息,例如用户登录和注销或保存数据通过登录,我的意思是我们将把消息插入一个轻量级的SQL表中,客户端可以从中查询并显示最新消息。 这些消息
2回复

使用LIKE关键字在SQL中搜索数据

我有一个SQL存储过程,它根据发送数据在我的表中搜索数据。 但是当我使用它时,我无法得到任何结果。 这是我的C#代码帽正在使用存储过程: 这是我的存储过程: 我需要做什么?