-1

一段代码,

string cmdText = @"INSERT INTO Planilha
(
  ROTALOJ     , ROTA      , LOJA          , [BAIRRO-LOJA] , UF           ,
  [INI-R]     , [FIN-R]   , DOCA          , [D-GER]       , [H-GER]      ,
  [FIN-P]     , [FIN-P1]  , [INI-S]       , [INI-S1]      , [FIN-S]      ,
  [FIN-S1]    , [HR-SE]   , [D-CON]       , [H-CON]       , [D-DOC]      ,
  [H-DOC]     , [D-EMI]   , [H-EMI]       , [D-SAI]       , [H-SAI]      ,
  [Q-PER]     , [LOJ-E]   , [LOJ-E1]      , [LOJ-P]       , [LOJ-P1]     ,
  PLACA       , [TP-VEIC] , [NOME-GUERRA] , MOTORIST      , [T-DES]      ,
  [T-SEP]     , [S-LOJ]   , [S-LOJ1]      , [H-DES]       , [TP-CARG]    ,
  DEP         , BD        , PESO          , VOLUME        , [VAL-TRANSF] ,
  [VAL-FRETE] , [PLC-CAV] , RG            , LIBER         , LIBER1       ,
  DTFLY       , QTFLV     , DTOUT         , QTOUT         , [SE-RI]      ,
  [SE-RI1]    , [SE-RF]   , [SE-RF1]      , DTPER         , QTPER        ,
  SEQ         , FA        , [D-SEN]
)
VALUES
(
  @p0+@p1     , @p0       , @p1          , @p2            , @p3  ,
  @p4         , @p5       , @p6          , @p7            , @p8  ,
  @p9         , @p10      , @p11         , @p12           , @p13 ,
  @p14        , @p15      , @p16         , @p17           , @p18 ,
  @p19        , @p20      , @p21         , @p22           , @p23 ,
  @p24        , @p25      , @p26         , @p27           , @p28 ,
  @p29        , @p30      , @p31         , @p32           , @p33 ,
  @p34        , @p35      , @p36         , @p37           , @p38 ,
  @p39        , @p40      , @p41         , @p42           , @p43 ,
  @p44        , @p45      , @p46         , @p47           , @p48 ,
  @p49        , @p50      , @p51         , @p52           , @p53 ,
  @p54        , @p55      , @p56         , @p57           , @p58 ,
  @p59        , @p60      , @p61         , @p62                   
)
";

SqlCommand cmd = new SqlCommand(cmdText, conexao);
cmd.Parameters.AddWithValue("@p0", dtExcel.Rows[i][0]);
cmd.Parameters.AddWithValue("@p1", dtExcel.Rows[i][1]);
cmd.Parameters.AddWithValue("@p2", dtExcel.Rows[i][2]);
cmd.Parameters.AddWithValue("@p3", dtExcel.Rows[i][3]);
cmd.Parameters.AddWithValue("@p4", dtExcel.Rows[i][4]);
cmd.Parameters.AddWithValue("@p5", dtExcel.Rows[i][5]);
cmd.Parameters.AddWithValue("@p6", dtExcel.Rows[i][6]);
cmd.Parameters.AddWithValue("@p7", dtExcel.Rows[i][7]);
cmd.Parameters.AddWithValue("@p8", dtExcel.Rows[i][8]);
cmd.Parameters.AddWithValue("@p9", dtExcel.Rows[i][9]);
cmd.Parameters.AddWithValue("@p10", dtExcel.Rows[i][10]);
cmd.Parameters.AddWithValue("@p11", dtExcel.Rows[i][11]);
cmd.Parameters.AddWithValue("@p12", dtExcel.Rows[i][12]);
cmd.Parameters.AddWithValue("@p13", dtExcel.Rows[i][13]);
cmd.Parameters.AddWithValue("@p14", dtExcel.Rows[i][14]);
cmd.Parameters.AddWithValue("@p15", dtExcel.Rows[i][15]);
cmd.Parameters.AddWithValue("@p16", dtExcel.Rows[i][16]);
cmd.Parameters.AddWithValue("@p17", dtExcel.Rows[i][17]);
cmd.Parameters.AddWithValue("@p18", dtExcel.Rows[i][18]);
cmd.Parameters.AddWithValue("@p19", dtExcel.Rows[i][19]);
cmd.Parameters.AddWithValue("@p20", dtExcel.Rows[i][20]);
cmd.Parameters.AddWithValue("@p21", dtExcel.Rows[i][21]);
cmd.Parameters.AddWithValue("@p22", dtExcel.Rows[i][22]);
cmd.Parameters.AddWithValue("@p23", dtExcel.Rows[i][23]);
cmd.Parameters.AddWithValue("@p24", dtExcel.Rows[i][24]);
cmd.Parameters.AddWithValue("@p25", dtExcel.Rows[i][25]);
cmd.Parameters.AddWithValue("@p26", dtExcel.Rows[i][26]);
cmd.Parameters.AddWithValue("@p27", dtExcel.Rows[i][27]);
cmd.Parameters.AddWithValue("@p28", dtExcel.Rows[i][28]);
cmd.Parameters.AddWithValue("@p29", dtExcel.Rows[i][29]);
cmd.Parameters.AddWithValue("@p30", dtExcel.Rows[i][30]);
cmd.Parameters.AddWithValue("@p31", dtExcel.Rows[i][31]);
cmd.Parameters.AddWithValue("@p32", dtExcel.Rows[i][32]);
cmd.Parameters.AddWithValue("@p33", dtExcel.Rows[i][33]);
cmd.Parameters.AddWithValue("@p34", dtExcel.Rows[i][34]);
cmd.Parameters.AddWithValue("@p35", dtExcel.Rows[i][35]);
cmd.Parameters.AddWithValue("@p36", dtExcel.Rows[i][36]);
cmd.Parameters.AddWithValue("@p37", dtExcel.Rows[i][37]);
cmd.Parameters.AddWithValue("@p38", dtExcel.Rows[i][38]);
cmd.Parameters.AddWithValue("@p39", dtExcel.Rows[i][39]);
cmd.Parameters.AddWithValue("@p40", dtExcel.Rows[i][40]);
cmd.Parameters.AddWithValue("@p41", dtExcel.Rows[i][41]);
cmd.Parameters.AddWithValue("@p42", dtExcel.Rows[i][42]);
cmd.Parameters.AddWithValue("@p43", dtExcel.Rows[i][43]);
cmd.Parameters.AddWithValue("@p44", dtExcel.Rows[i][44]);
cmd.Parameters.AddWithValue("@p45", dtExcel.Rows[i][45]);
cmd.Parameters.AddWithValue("@p46", dtExcel.Rows[i][46]);
cmd.Parameters.AddWithValue("@p47", dtExcel.Rows[i][47]);
cmd.Parameters.AddWithValue("@p48", dtExcel.Rows[i][48]);
cmd.Parameters.AddWithValue("@p49", dtExcel.Rows[i][49]);
cmd.Parameters.AddWithValue("@p50", dtExcel.Rows[i][50]);
cmd.Parameters.AddWithValue("@p51", dtExcel.Rows[i][51]);
cmd.Parameters.AddWithValue("@p52", dtExcel.Rows[i][52]);
cmd.Parameters.AddWithValue("@p53", dtExcel.Rows[i][53]);
cmd.Parameters.AddWithValue("@p54", dtExcel.Rows[i][54]);
cmd.Parameters.AddWithValue("@p55", dtExcel.Rows[i][55]);
cmd.Parameters.AddWithValue("@p56", dtExcel.Rows[i][56]);
cmd.Parameters.AddWithValue("@p57", dtExcel.Rows[i][57]);
cmd.Parameters.AddWithValue("@p58", dtExcel.Rows[i][58]);
cmd.Parameters.AddWithValue("@p59", dtExcel.Rows[i][59]);
cmd.Parameters.AddWithValue("@p60", dtExcel.Rows[i][60]);
cmd.Parameters.AddWithValue("@p61", dtExcel.Rows[i][61]);
cmd.Parameters.AddWithValue("@p62", dtExcel.Rows[i][62]);

cmd.ExecuteNonQuery();

现在给出这个错误......

错误画面

对于那些帮助我的人,谢谢我正在等待某人的回答

D B

ROTALOJ varchar(50) Checked
ROTA    varchar(50) Checked
LOJA    varchar(50) Checked
4

1 回答 1

0

您的插入语句指定 63 列,而您的值列表提供 64 列。

为了清楚起见,我已经重排了您的代码示例。问题应该是相当明显的。

对于它的价值,尤其是对于 SQL,整洁的表格代码是一个巨大的认知帮助。人们的头脑理解规律性并注意到不规律性。

另外,请记住 DRY 原则(“不要重复自己”):最好使用简单的循环,而不是重复 63 次相同的事情:

for ( int j = 0 ; j < 63 ; ++i )
{
    string name  = string.Format("@p{0}",j) ;
    object value = dtExcel.Rows[i][j] ;
    cmd.Parameters.AddWithValue( name , value );
}
于 2013-10-28T23:14:47.173 回答