问题描述
问题是:我有一个insert语句,比如说这样:insertintotable1(a,b,c,.....)values('"+a[0]+"','"+a[1]+"','"+a[2]+"',.......)如果a[0]a[1]a[2]......有等于0的。。就让它为空。。我是不想数据库的记录中有0,记录是0我就放空。。这样怎么实现。。。
解决方案
解决方案二:
自己顶下,,,UP...
解决方案三:
for(i=0;i<100;i++){if(a[i]==0){a[i]=="";}}..........................
解决方案四:
那可以判断当a[i]中的i=0的时候就让a[0]=NULL
解决方案五:
问题是:我有一个insert语句,比如说这样:insertintotable1(a,b,c,.....)values('"+a[0]+"','"+a[1]+"','"+a[2]+"',.......)如果a[0]a[1]a[2]......有等于0的。。就让它为空。。我是不想数据库的记录中有0,记录是0我就放空。。这样怎么实现。。。---------------楼主的想法可真有意思给楼主一个方案.第一步,直接插入,不管他是否为0;第二步,更新数据表,把表中所有记录中包含有0记录的全部更改为null.
解决方案六:
insertintotable1(a,b,c,.....)values('"+(a[0]==0?null:a[0])+"','"+(a[1]==0?null:a[1])+"','"+(a[2]==0?null:a[2])+"',.......)
解决方案七:
wweennbb...同意这个人的,,
解决方案八:
我的a[]是float这样好像不行啊。。Insertintotable1(a,b,c,.....)values('"+(a[0]==0?null:a[0])+"','"+(a[1]==0?null:a[1])+"','"+(a[2]==0?null:a[2])+"',.......)
解决方案九:
insertintotable1(a,b,c,.....)values('"+a[0]+"','"+a[1]+"','"+a[2]+"',.......)看你的這個寫法,數組a應該是字符串型的吧insertintotable1(a,b,c,.....)values("+a[0]!="0"?"'"+a[0]+"'":"null"+","+a[1]!="0"?"'"+a[1]+"'":"null"+","+a[2]!="0"?"'"+a[2]+"'":"null"+","+.......)
解决方案十:
insertintotable1(a,b,c,.....)values('"+a[0]+"','"+a[1]+"','"+a[2]+"',.......)看你的這個寫法,數組a應該是字符串型的吧insertintotable1(a,b,c,.....)values("+a[0]!="0"?"'"+a[0]+"'":"null"+","+a[1]!="0"?"'"+a[1]+"'":"null"+","+a[2]!="0"?"'"+a[2]+"'":"null"+","+.......)
解决方案十一:
insertintotable1(a,b,c,.....)values('"+a[0]+"','"+a[1]+"','"+a[2]+"',.......)看你的這個寫法,數組a應該是字符串型的吧insertintotable1(a,b,c,.....)values("+a[0]!="0"?"'"+a[0]+"'":"null"+","+a[1]!="0"?"'"+a[1]+"'":"null"+","+a[2]!="0"?"'"+a[2]+"'":"null"+","+.......)
解决方案十二:
insertintotable1(a,b,c,.....)values('"+a[0]+"','"+a[1]+"','"+a[2]+"',.......)看你的這個寫法,數組a應該是字符串型的吧insertintotable1(a,b,c,.....)values("+a[0]!="0"?"'"+a[0]+"'":"null"+","+a[1]!="0"?"'"+a[1]+"'":"null"+","+a[2]!="0"?"'"+a[2]+"'":"null"+","+.......)
解决方案十三:
我的a[]是float这样好像不行啊。。Insertintotable1(a,b,c,.....)values('"+(a[0]==0?null:a[0])+"','"+(a[1]==0?null:a[1])+"','"+(a[2]==0?null:a[2])+"',.......)--------------------------------那你数据库里保存的应该是VARCHAR类型吧?
解决方案十四:
暈,我這裡網絡不好,等我發現時候提交了N次了,實在不好意思
解决方案十五:
暈,我這裡網絡不好,剛反復點了幾次,實在不好意思
解决方案:
Insertintotable1(a,b,c,.....)values('"+(a[0]==0?null:a[0])+"','"+(a[1]==0?null:a[1])+"','"+(a[2]==0?null:a[2])+"',.......)-----------------stringsqlString="Insertintotable1(a,b,c,.....)values('"+(a[0].ToString()=="0"?null:a[0])+"','"+(a[1].ToString()=="0"?null:a[1])+"','"+(a[2].ToString()=="0"?null:a[2])+"',.......)"
解决方案:
我用ACCESS的。。。数据库里面的文本类型的,,
解决方案:
根本法的
解决方案:
dsfdsfvdsvdvfdfgd
解决方案:
yjyjyhjmhgjmhg
解决方案:
stringsqlString="Insertintotable1(a,b,c,.....)values('"+(a[0].ToString()=="0"?null:a[0])+"','"+(a[1].ToString()=="0"?null:a[1])+"','"+(a[2].ToString()=="0"?null:a[2])+"',.......).a[]是float类型的话过不了,,要怎么办啊,,
解决方案:
我教你(要给分哦):直接给null当然不行了publicvoidInsertValue(){stringsql="INSERTINTOtableName(a,b,c..)VALUES(@a,@b,@c)";SqlConnectionconn=newSqlConnection("连接串");SqlCommandcommand=newSqlCommand(sql,conn);//创建sql指令//创建参数集合SqlParameter[]paras=newSqlParameter[9];//例如参数有9个paras[0]=newSqlParameter("@a",SqlDbType.Decimal);paras[0].Value=a[0]==0?System.DBNull.Value:a[0];paras[1]=newSqlParameter("@b",SqlDbType.Decimal);paras[1].Value=a[1]==0?System.DBNull.Value:a[1];paras[2]=newSqlParameter("@c",SqlDbType.Decimal);paras[2].Value=a[2]==0?System.DBNull.Value:a[2];//..............依次把9个参数的值添加进去for(inti=0;i<9;i++)//为sql指令添加参数{command.Parameters.Add(paras);}command.ExecuteNonQuery();//执行}
解决方案:
access的数据库可以这样写吗。?还有我的a[]是floatparas[2]=newSqlParameter("@c",SqlDbType.Decimal);这样可以吗。。("@c",SqlDbType.Decimal);。。。、、问题解决都有分,,
解决方案:
真接SQL语句insertintotable1(aa,bb)values((caseawhen0then''elseaend),(casebwhen0then''elsebend))
解决方案:
项一下
解决方案:
不好意思,没注意你是Access,下面是Access的publicvoidInsertValue(){stringsql="INSERTINTOtableName(a,b,c..)VALUES(@a,@b,@c)";OleDbConnectionconn=newOleDbConnection("server=.;uid=sa;pwd=sa;database=pubs;Provider=SQLOLEDB;");OleDbCommandcommand=newOleDbCommand(sql,conn);//创建sql指令//创建参数集合OleDbParameter[]paras=newOleDbParameter[9];//例如参数有9个paras[0]=newOleDbParameter("@a",OleDbType.Single);paras[0].Value=this.Change0ToNull(a[0]);paras[1]=newOleDbParameter("@b",OleDbType.Single);paras[1].Value=this.Change0ToNull(a[1]);paras[2]=newOleDbParameter("@c",OleDbType.Single);paras[2].Value=this.Change0ToNull(a[2]);//..............依次把9个参数的值添加进去for(inti=0;i<9;i++)//为sql指令添加参数{command.Parameters.Add(paras);}command.ExecuteNonQuery();//执行}privateobjectChange0ToNull(floatval){if(val!=0f){returnval;}returnSystem.DBNull.Value;}
解决方案:
OleDbConnection("server=.;uid=sa;pwd=sa;database=pubs;Provider=SQLOLEDB;");这个连接串你自己改一下
解决方案:
stringsql=string.Format("insertintotable1(a,b,c,.....)values('{0}','{1}','{2}',.......)",a[0],a[1],a[2]......);Regexr=newRegex("'0'");r.Replace(sql,string.Empty);
解决方案:
stringsql=string.Format("insertintotable1(a,b,c,.....)values('{0}','{1}','{2}',.......)",a[0],a[1],a[2]......);Regexr=newRegex("'0'");sql=r.Replace(sql,string.Empty);
解决方案:
...问题解决了,,大家辛苦啦,,
解决方案:
呵呵,这道题lz看看casewhen,sqlserver帮助,直接可以在sql语句中搞定
解决方案:
那楼主结贴咯