c#-ORA-01036:非法的变量名称/编号
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#-ORA-01036:非法的变量名称/编号,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2819字,纯文字阅读大概需要5分钟。
内容图文
![c#-ORA-01036:非法的变量名称/编号](/upload/InfoBanner/zyjiaocheng/673/e6070e26c35b4b0b981857fc91f1c2e3.jpg)
我从Oracle数据库检索数据并填充gridview.接下来,我尝试运行查询以选择一些数据,但出现错误.
这是代码:
db.cs:
public static OracleConnection GetConnection()
{
OracleConnection connection = null;
string connectionString = "Data Source=" + Database +
";User ID=" + UserID +
";Password=" + Password +
";Unicode=True";
try
{
connection = new OracleConnection(connectionString);
}
catch (OracleException ex)
{
throw ex;
}
return connection;
}
参数是从default.aspx.cs发送的:
new Db(database, userID, password);
OracleConnection connection = Db.GetConnection();
main.aspx.cs检索所有数据:
private OracleConnection connection = new OracleConnection();
private Select select = new Select();
protected void Page_Load(object sender, EventArgs e)
{
Response.Buffer = true;
if (Db.IsLoggedIn())
{
string selectCommand =
"SELECT " + Settings.TABLE + ".* FROM " + Settings.TABLE + " ORDER BY ";
foreach (string ob in Settings.OB) selectCommand += ob + ", ";
Session["Error"] = null;
connection = Db.GetConnection();
select = new Select(ddlBubID, ddlBusArea, ddlDrillSite, ddlWell, connection);
gvData.DataKeyNames = Settings.PK;
gvData.SelectedIndex = -1;
DS.ConnectionString = connection.ConnectionString;
DS.SelectCommand = selectCommand.Remove(selectCommand.Length - 2, 2);
DS.ProviderName = Settings.PROVIDER_NAME;
PopulateFooter(gvData.FooterRow);
}
else
{
Session["Error"] = Settings.ERROR_MESSAGE[0, 0];
Response.Clear();
Response.Redirect("default.aspx");
}
}
public string ToolTip(string column)
{
string value = "";
OracleCommand cmd = new OracleCommand();
cmd.Connection = connection;
cmd.CommandText = "SELECT DISTINCT COMMENTS " +
"FROM SYS.ALL_COL_COMMENTS " +
"WHERE (TABLE_NAME = 'CTD_PROBLEM_EDIT_V') " +
"AND (COLUMN_NAME = " + column + ")";
cmd.CommandType = CommandType.Text;
OracleDataReader reader = cmd.ExecuteReader(); // I get an error here
reader.Read();
value = reader["COMMENTS"].ToString();
reader.Close();
return value;
}
protected void gvData_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
for (int i = 1; i < e.Row.Cells.Count; i++)
{
try
{
LinkButton lb =
(LinkButton)gvData.HeaderRow.Cells[i].Controls[0];
lb.ToolTip = ToolTip(lb.Text);
/* Blah Blah*/
}
catch { }
}
if (e.Row.RowType == DataControlRowType.Footer)
PopulateFooter(e.Row);
}
ToolTip();引发错误:
无效的操作.连接已关闭.
编辑:
这会有所帮助:
Static Classes and Static Class Members
解决方法:
可能不是问题,但这看起来很奇怪:
new Db(database, userID, password);
OracleConnection connection = Db.GetConnection();
GetConnection是静态方法,因此它看不到您可能在构造函数中设置的任何成员属性(除非它们也是静态的).如果它们都是静态的,请考虑将代码重构为使用单例模式,因为它更易读.
另一件事是,连接属性是为每个请求(不是针对每个应用程序)生成的页面类的成员.这意味着您需要在ToolTip方法(以及访问数据库的任何其他方法)中创建新的连接,或者将连接属性设为静态以针对每个应用程序进行连接.
内容总结
以上是互联网集市为您收集整理的c#-ORA-01036:非法的变量名称/编号全部内容,希望文章能够帮你解决c#-ORA-01036:非法的变量名称/编号所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。