C# 带文本命令类型的ORA-01001
我对一些C代码有一个非常奇怪的问题。 我有这样的方法:C# 带文本命令类型的ORA-01001,c#,sql,oracle,C#,Sql,Oracle,我对一些C代码有一个非常奇怪的问题。 我有这样的方法: public static void LoadDataToList(string viewName, ListBox lbxToLoad) { try { OracleCommand cmd = new OracleCommand(); cmd.Connection = DBConnection.EnsureConnectionToDB(); cmd.CommandText =
public static void LoadDataToList(string viewName, ListBox lbxToLoad)
{
try
{
OracleCommand cmd = new OracleCommand();
cmd.Connection = DBConnection.EnsureConnectionToDB();
cmd.CommandText = "select * from " + viewName;
cmd.CommandType = CommandType.Text;
OracleDataReader dr = cmd.ExecuteReader();
List<CustomTypes.ListBoxItems> listItems = new List<CustomTypes.ListBoxItems>();
while (dr.Read())
{
var itemValue = dr.GetOracleValue(0);
var itemText = dr.GetOracleValue(1);
listItems.Add(new CustomTypes.ListBoxItems() { Value = itemValue, Text = itemText });
}
lbxToLoad.DisplayMemberPath = "Text";
lbxToLoad.ItemsSource = listItems;
lbxToLoad.IsEnabled = true;
dr.Dispose();
cmd.Dispose();
}
catch
{
MsgHandling(3);
}
}
cmd.Parameters.Clear()
是无用的,因为您根本不使用任何参数。我知道,但我尝试执行所有操作,但仍然出现此错误…CommandType。文本应为默认值。你能发布视图定义吗?很可能OracleDataReader
对象正在引擎盖下使用光标;这是一次检索一行的典型方法。如果一次打开的游标太多,也会发生此错误:连接是否已打开?在创建readercmd.Connection.open()之前尝试打开它
select distinct
ti.value as id
, ti.value as value
from
x.table1 t
, x.table2 ti
WHERE
t.t1_num= ti.t2_num AND ti.type_id = 20003
ORDER by
ti.value asc;