将gridview的内容写入oracle数据库出错
cs代码如下:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Data.OracleClient;
using System.Data.OleDb;
public partial class _Default : System.Web.UI.Page
{
public DataSet ds;
protected void Page_Load(object sender, EventArgs e)
{
ds = (DataSet)this.GridView1.DataSource;
//Session["ds "] = GridView1.DataSource;
// ds = (DataSet)Session["GridView1"];
}
protected void Button1_Click(object sender, EventArgs e)
{
OracleConnection conn = new OracleConnection("Data source = xxxx; User Id=xxxx; Password=xxxx;");
if (conn.State.ToString() == "Closed")
{
conn.Open();
}
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
string danwei = ds.Tables[0].Rows[i][0].ToString();
string chexing = ds.Tables[0].Rows[i][1].ToString();
string chehao = ds.Tables[0].Rows[i][2].ToString();
string jiashiyuan = ds.Tables[0].Rows[i][3].ToString();
string bqqk = ds.Tables[0].Rows[i][4].ToString();
string sql = "insert into tcddbqb([danwei],[chexing],[chehao],[jiashiyuan],[bqqk]) values('" + danwei + "','" + chexing + "','" + chehao + "','" + jiashiyuan + "','" + bqqk + "')";
OracleCommand cmd = new OracleCommand(sql, conn);
try
{
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
Response.Write("插入失败!由于:" + ex.Message);
}
}
conn.Close();
Response.Write("<SCRIPT>alert('数据已成功导入到数据库!');</SCRIPT>");
}
}
我想把gridview的内容放入dataset中,然后再写入数据库,但是在for (int i = 0; i < ds.Tables[0].Rows.Count; i++)的时候报错,说明内容没有写入到dataset 的ds中。请问应该如何更改,还是有更好的方法,请把代码给出来,不胜感激~!
[解决办法]
怎么那么冷清啊。。帮你顶了。。。
[解决办法]
this.GridView1.DataSource 是什么?dataset吗?你的思路好像不对。你应该借助 SqlDataAdapter 来更新。
[解决办法]
ds = (DataSet)this.GridView1.DataSource;为什么这样写
不就是把GridView的数据存入数据库吗?干么还非得用DataSet 直接遍历GridView就是了
[解决办法]
说真的,没见过这么获得数据源(ds = (DataSet)this.GridView1.DataSource;
),一般的作法是获得一个DataSet,然后GridView再绑定数据源(这里就是GridView的显示)
,如果真有你这样的作法,你可以调试看下(DataSet)this.GridView1.DataSource这个有没有值的,再就是出的错又是什么错来的,这也是一个问题
[解决办法]
你可以直接循环dgv,然后一条条加入数据库,
ds = (DataSet)this.GridView1.DataSource;
可改为DataTable dt=this.GridView1.DataSource;
DataSet ds=new DataSet();
ds.Add(dt);