从一台服务器(A)中把数据读到一个datagrid去,然后怎么能把这个读出来的数据整个保存到另一个服务器(B)中去呢,这是从A服务器读出来的数据并绑定到datagrid中
string str = "select FBillNo,t_icitem.fname,Fauxqty,FCommitDate,FPLanCommitDate,FPLanFinishDate from icmo inner join t_icitem on icmo.fitemid=t_icitem.fitemid  where len(fbillno)=8 and(fauxqty>fauxstockqty) and FAuxStockQty<>0";
            SqlConnection con = new SqlConnection("server=172.168.0.129;database=abcd;user id=d;pwd=d;");
            con.Open();
            SqlCommand cmd = con.CreateCommand();
            cmd.CommandText = str;
            cmd.ExecuteNonQuery();
            DataSet ds=new DataSet();
            SqlDataAdapter da=new SqlDataAdapter();
            da.SelectCommand=cmd;
            da.Fill(ds,"t");
            dataGrid1.DataSource = ds.Tables[0];            con.Close();下面我想在上面的基础上怎么实现datagrid中的数据保存到服务器B中去(就是存到一张表里去)

解决方案 »

  1.   

    SqlDataAdapter 有个insert方法,你试试
      

  2.   

    警E卫是一款致力于IT系统监控和数据文件保护方面的安全型产品。
    它包括六个子系统:1、《数据归档》用于数据文件自动归档保护;
    2、《系统运行监控》对系统进程,运行情况等软环境实施监控;
    3、《安全漏洞监控》主要监控操作系统及其它软件等相关补丁是否完整;
    4、《硬件设备监控》则通过调用硬件设备的监控程序来监控其运行状态;
    5、《网络监控》主要分析网络流量以及网络异常访问等信息;
    6、《日志监控分析》则通过采集和分析系统日志,发现系统存在的问题。
    想了解 想学习的朋友可以去看看http://www.japee.com.cn/jew/index.htm
      

  3.   

    保存在另外一个数据库服务器吗,那就要连接另外一个服务器啊,然后打开连接,然后循环insert进入
      

  4.   

    另外建个Connection到要保存数据的服务器
    然后创建Command,
    然后ExecuteNonquery();SqlConnection conn = new SqlConnection("server=[服务器地址];database=abcd;user id=d;pwd=d;");
    string strSql = "insert into....";
    SqlCommand comm = new SqlCommand(strSql,conn);
    comm.ExecuteNonQuery();
      

  5.   

    添加那张表阿,这个数据在datagrid 中呢,怎么写sql语句阿,这是两个不同的服务器
      

  6.   

    感觉LZ是复制一张相同表到服务器B中,那么在服务器B中建立(create)一张同名表。然后往该表中插入从服务器A中读出的数据。
      

  7.   

    public bool SaveTable(DbConnection cnnServerB, DataTable sourceTable)
            {
                //if (cnnServerB.State != ConnectionState.Open)
                //{
                //    cnnServerB.Open();
                //}
                //else
                //{
                //    //return true;
                //}            //using (DbCommand cmd = cnnServerB.CreateCommand())
                //{
                //    //删除旧数据
                //    try
                //    {
                //        cmd.CommandText = "DROP TABLE  " + sourceTable.TableName;
                //        cmd.ExecuteNonQuery();
                //    }
                //    catch
                //    { }            //    //创建新表
                //    cnnServerB.d
                //    cmd.CommandText = "CREATE TABLE " + ;
                //    cmd.ExecuteNonQuery();
                //}
                //return true;            using (DbTransaction dbTrans = cnnServerB.BeginTransaction())
                {
                    using (DbCommand cmd = cnnServerB.CreateCommand())
                    {
                        cmd.CommandText = "DELETE FROM " + sourceTable.TableName;
                        cmd.CommandTimeout = 2;
                        try
                        {
                            cmd.ExecuteNonQuery(); 
                        }
                        catch
                        {
                        }                    DbParameter[] dbParam = new DbParameter[sourceTable.Columns.Count];
                        string sCol = "";
                        string sV = "";
                        for (int i = 0; i < sourceTable.Columns.Count; ++i)
                        {
                            sCol += sourceTable.Columns[i].ColumnName;
                            sV += "?";
                            if (i < sourceTable.Columns.Count - 1)
                            {
                                sCol += ",";
                                sV += ",";
                            }
                            dbParam[i] = cmd.CreateParameter();
                            cmd.Parameters.Add(dbParam[i]);
                        }
                        cmd.CommandText = "INSERT INTO " + sourceTable.TableName + "(" + sCol + ") VALUES(" + +sV + ")";                    int iRow = sourceTable.Rows.Count;
                        int iCol = sourceTable.Columns.Count;
                        for (k = 0; k < iRow;++k )
                        {
                            DataRow row=sourceTable.Rows[k];
                            for (j = 0; j < iCol;++j )
                            {
                                dbParam[j].Value = row[j];
                            }
                            cmd.ExecuteNonQuery();
                        }                    dbTrans.Commit();
                    }
                }
            }
      

  8.   

    思路:1、serverB 上的旧表需要删除或只删除数据,表不存在时需要建表
    2、用Insert 把数据插入到新表中
    3、cmd.CommandText = "INSERT INTO " + sourceTable.TableName + "(" + sCol + ") VALUES(" + +sV + ")";构造insert语句
        cmd.CommandText = "INSERT INTO " + sTable + "(col1,col2,col3,... ) VALUES(?,?,?,...)";
    4、执行语句
      

  9.   

    “添加那张表阿,这个数据在datagrid 中呢,怎么写sql语句阿,这是两个不同的服务器”
    是不是不知道如何从datagrid上取数据呀?
    既然用 dataGrid1.DataSource = ds.Tables[0]; 那取的时候就是先调dataGrid1.Update(),把数据刷新到DataTable,然后取DataTable就行了.
      

  10.   

    lz应该看看MSDN,先有一些基础
      

  11.   

    DataTable dt= (DataTable)dataGrid1.DataSource ;//因为你设置的是DataTable,所以可以强制转化