c# oracle 的问题

王朝知道·作者佚名  2010-05-05
窄屏简体版  字體: |||超大  
 
分類: 電腦/網絡 >> 程序設計 >> 其他編程語言
 
問題描述:

private void Button1_Click(object sender, System.EventArgs e)

{

string connString="Data Source=pki ;user=taxrauser;password=taxrauser";

OracleConnection oracleConnection=new OracleConnection(connString);

oracleConnection.Open();

OracleCommand cmd=oracleConnection.CreateCommand();

string sqlstring="select sum(sale_all),sum(sale_new),sum(sale_updated),sum(sale_free) from lc_dailymanage";

if (taxju != "0")

{

sqlstring += " and tax_ju= '"+taxju+"'";

}

if (taxsuo != "0")

{

sqlstring += " and tax_name= '"+taxsuo+"'";

}

if (Opera != "0")

{

sqlstring += " and user_name='"+Opera+"'";

}

if (STime != "")

{

sqlstring += " and time>='"+STime+"'";

}

if (PTime != "")

{

sqlstring += " and time<= '"+PTime+"'";

}

cmd.CommandText=sqlstring;

OracleDataReader odr=cmd.ExecuteReader();

while(odr.Read())

this.temp=odr.GetOracleNumber(0).ToString();

this.temp1=odr.GetOracleNumber(1).ToString();

this.temp2=odr.GetOracleNumber(2).ToString();

this.temp3=odr.GetOracleNumber(3).ToString();

}

odr.Close();

}

错误提示:

ORA-00933: SQL 命令未正确结束

參考答案:

Select的语法是

Select ColumnNames From TableName Where Condition...

你的程序中的sqlstring中始终没有Where

sqlstring += " and tax_ju= '"+taxju+"'";

这种形式就不太好,解决方法是定义一个数组string [] Conditions保存条件,具体形式为:

if (条件成立)

Conditions[len++]=Sql中的逻辑表达式

最后采用如下语句加入条件:

if(Conditions.Length!=0){

sqlstring+="Where ";

for (i=0;i<Conditions.Length;i++)

{

if (i!=Conditions.Length)

{

sqlstring+=Conditions[i]+" And ";

}

else

sqlstring+=Conditions[i];

}

}

}

比较笨,但是有效且不会出错

小贴士:① 若网友所发内容与教科书相悖,请以教科书为准;② 若网友所发内容与科学常识、官方权威机构相悖,请以后者为准;③ 若网友所发内容不正确或者违背公序良俗,右下举报/纠错。
 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航