如何将新建立的datatable写入数据库啊

解决方案 »

  1.   

    public static int InsertTable(DataTable table,int companyId,int operId)
    {
    int ret =0;
    string companyNo = FHWL.Model.BaseInfo.CompanyADO.GetCompanyNoById(companyId);
    string strInsert = "INSERT INTO O_OrderBill(OrderNo,OrderCode,Name,Address,"
                    +Tel,Mobile,GoodInfo,Standard,Total,Description,CompanyId,"
    +"CreateDate,ModifyDate,CreateOperId,ModifyOperId,"
                    +ProvinceId,Status,SubStatus,PrintFlag,PrintDate,"
    +"PreCheckDate,DispatchDate,ResponseDate,SendDate) "
    +"values(@orderno,@ordercode,@name,@address,@tel,"
           +@mobile,@goodInfo,@standard,@total,@descr,"+companyId+",GetDate(),GetDate(),"
    +operId+","+operId+",@provinceId,@status,@subStatus,"
                    +@printFlag,GetDate(),GetDate(),GetDate(),GetDate(),GetDate())";
            FHWL.ADO.DBConnection conn = new FHWL.ADO.DBConnection();
            SqlCommand com = new SqlCommand(strInsert,conn.GetConnection());
    conn.Open();

    SqlParameter p1 = new SqlParameter("@orderno",SqlDbType.VarChar);
    SqlParameter p2 = new SqlParameter("@ordercode",SqlDbType.VarChar);
    SqlParameter p4 = new SqlParameter("@address",SqlDbType.VarChar);
    SqlParameter p3 = new SqlParameter("@name",SqlDbType.VarChar);
    SqlParameter p5 = new SqlParameter("@tel",SqlDbType.VarChar);
    SqlParameter p6 = new SqlParameter("@mobile",SqlDbType.VarChar);
    SqlParameter p7 = new SqlParameter("@goodInfo",SqlDbType.VarChar);
    SqlParameter p8 = new SqlParameter("@standard",SqlDbType.VarChar);
    SqlParameter p9 = new SqlParameter("@total",SqlDbType.Decimal);
    SqlParameter p10 = new SqlParameter("@descr",SqlDbType.VarChar);
    SqlParameter p11 = new SqlParameter("@provinceId",SqlDbType.Int);
    SqlParameter p12 = new SqlParameter("@status",SqlDbType.Int);
    p12.Value = 0;//-------------------------主状态默认为0
    SqlParameter p13 = new SqlParameter("@subStatus",SqlDbType.Int);
    p13.Value = 0;//-------------------------次状态默认为0
    SqlParameter p14 = new SqlParameter("@printFlag",SqlDbType.Int);
    p14.Value = 0;//-------------------------打印标记默认为0 com.Parameters.Add(p1);
    com.Parameters.Add(p2);
    com.Parameters.Add(p3);
    com.Parameters.Add(p4);
    com.Parameters.Add(p5);
    com.Parameters.Add(p6);
    com.Parameters.Add(p7);
    com.Parameters.Add(p8);
    com.Parameters.Add(p9);
    com.Parameters.Add(p10);
    com.Parameters.Add(p11);
    com.Parameters.Add(p12);
    com.Parameters.Add(p13);
    com.Parameters.Add(p14);
    for(int i=0;i<table.Rows.Count;i++)
    {
    DataRow row = table.Rows[i];
    p1.Value = companyNo+row["OrderCode"].ToString();
    p2.Value = row["OrderCode"].ToString();
    p3.Value = row["Name"].ToString();
    p4.Value = row["Address"].ToString();
    p5.Value = row["Tel"].ToString();
    p6.Value = row["Mobile"].ToString();
    p7.Value = row["GoodInfo"].ToString();
    p8.Value = row["Standard"].ToString();
    p9.Value = Convert.ToDecimal(row["Total"].ToString());
    p10.Value = row["Description"].ToString();
    p11.Value = Convert.ToInt32(row["ProvinceId"].ToString());
    ret += com.ExecuteNonQuery();
    }
    conn.Close();
    return ret;
    }