代码如下 string COnnectionString = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=" + textBox_ip.Text + ")(PORT=1521))(CONNECT_DATA=(SID=orcl)));User Id=111;Password=111";
OracleConnection conn = new OracleConnection(COnnectionString);
conn.Open();
OracleCommand cmd = new OracleCommand("select DAY_COMPLETE_DATE as 日期,WORK_CONTENT as 日清 from TP_DAY_COMPLETE where DAY_COMPLETE_DATE between to_date('" + Time1.Value.ToShortDateString() + "','yyyy-MM-dd') and to_date('" + Time2.Value.ToShortDateString() + "','yyyy-MM-dd') and PERSON_ID= " + Id_textBox.Text + " ", conn);
OracleDataAdapter oda = new OracleDataAdapter();
oda.SelectCommand = cmd;
System.Data.DataTable dt = new System.Data.DataTable();
oda.Fill(dt);
this.dataGridView1.DataSource = dt;
conn.Close();
本机上运行没问题,程序放在别的电脑上就提示ORA-0091错误,不解,求大神。
OracleConnection conn = new OracleConnection(COnnectionString);
conn.Open();
OracleCommand cmd = new OracleCommand("select DAY_COMPLETE_DATE as 日期,WORK_CONTENT as 日清 from TP_DAY_COMPLETE where DAY_COMPLETE_DATE between to_date('" + Time1.Value.ToShortDateString() + "','yyyy-MM-dd') and to_date('" + Time2.Value.ToShortDateString() + "','yyyy-MM-dd') and PERSON_ID= " + Id_textBox.Text + " ", conn);
OracleDataAdapter oda = new OracleDataAdapter();
oda.SelectCommand = cmd;
System.Data.DataTable dt = new System.Data.DataTable();
oda.Fill(dt);
this.dataGridView1.DataSource = dt;
conn.Close();
本机上运行没问题,程序放在别的电脑上就提示ORA-0091错误,不解,求大神。
--改成這樣子,應是日期格式的問題
OracleCommand cmd = new OracleCommand("select DAY_COMPLETE_DATE as 日期,WORK_CONTENT as 日清 from TP_DAY_COMPLETE where DAY_COMPLETE_DATE between to_date('" + Time1.Value.ToString("yyyy-MM-dd") + "','yyyy-MM-dd') and to_date('" + Time2.Value.ToString("yyyy-MM-dd") + "','yyyy-MM-dd') and PERSON_ID= " + Id_textBox.Text + " ", conn);
在本机上运行没有任何问题,copy到别的机器上运行才有问题。
我把日期全部删除了,where后面只留PERSON_ID= " + Id_textBox.Text + " 依然是报0091
還有後面的 " + Id_textBox.Text.Trim(), conn);// + " ", 把這個去掉,沒用到的
改成这样了还是不行。
//斷點調試下,把sql的值打印出來
string sql="select DAY_COMPLETE_DATE as 日期,WORK_CONTENT as 日清 from TP_DAY_COMPLETE where DAY_COMPLETE_DATE between to_date('" + Time1.Value.ToString("yyyy-MM-dd") + "','yyyy-MM-dd') and to_date('" + Time2.Value.ToString("yyyy-MM-dd") + "','yyyy-MM-dd') and PERSON_ID= " + Id_textBox.Text.Trim();
OracleCommand cmd = new OracleCommand(sql, conn);
"select *
from TP_DAY_COMPLETE
where PERSON_ID=TO_NUMBER( '" + Id_textBox.Text + "') "TO_NUMBER是把字符串转换为数字。不过还是建议你使用databinding,无论对程序的可维护性,还是oracle的性能都有好处