问题描述
用意如下:winfor环境,C#编程,通过SqlCommand向数据库插入记录,因tabler的column很多,因此使用下述的SqlParametersp1=newSqlParameter("@p1",SqlDbType.TinyInt)之关的语句之多,麻烦。故想结合循环,直接用dataset中的table中column的数据类型赋值给sqlparameter.语句有点类型://=========================================================intcol_count=ds.Tables[0].Columns.Count;SqlCommandcmd=newSqlCommand(sql,sqlcon);SqlParameter[]sp=newSqlParameter[col_count];for(inti=1;i<col_count;i++){sp[i-1]=newSqlParameter();sp[i-1].ParameterName="@"+ds.Tables[0].Columns[i].ColumnName;sp[i-1].SqlDbType=ds.Tables[0].Columns[i].DataType;//请问这行为什么通不过?有什么好办法吗?请高手指教。sp[i-1].SourceColumn=ds.Tables[0].Columns[i].ColumnName;cmd.Parameters.Add(sp[i-1]);}
解决方案
解决方案二:
因为类型不一样一个是dqldbtype一个是datatype所以不能这么写
解决方案三:
只能一个一个写,有时候不能偷懒的
解决方案四:
类型转换看看
解决方案五:
或者干脆去掉sp[i-1].SqlDbType=ds.Tables[0].Columns[i].DataType;,应该不会有问题的