public bool InsertFuncInfo(string FuncName,string FuncDescription)
{
OracleConnection myConnection = new OracleConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
string sql = "insert into sysFuncDic(FuncName,Description) values(@FuncName,@FuncDescription)";
OracleCommand myCommand = new OracleCommand(sql, myConnection); myCommand.CommandType = CommandType.Text; OracleParameter parameterFuncName = new OracleParameter("@Funcname", OracleType.NVarChar, 50);
parameterFuncName.Value = FuncName;
myCommand.Parameters.Add(parameterFuncName); OracleParameter parameterFuncDescription = new OracleParameter("@Funcdescription", OracleType.NVarChar, 100);
parameterFuncDescription.Value = FuncDescription;
myCommand.Parameters.Add(parameterFuncDescription); myConnection.Open();
int result = myCommand.ExecuteNonQuery();
myConnection.Close();
if(result>0)
{
return true;
}
else
{
return false;
}
}
执行此函数时,程序报错:
ORA-01036: 非法的变量名/编号?
行 60: myConnection.Open();
行 61: int result = myCommand.ExecuteNonQuery(); (此行错误)
行 62: myConnection.Close();
行 63: if(result>0)[OracleException: ORA-01036: 非法的变量名/编号
]
System.Data.OracleClient.OracleConnection.CheckError(OciHandle errorHandle, Int32 rc)
System.Data.OracleClient.OracleParameterBinding.Bind(OciHandle statementHandle, NativeBuffer parameterBuffer, OracleConnection connection)
System.Data.OracleClient.OracleCommand.Execute(OciHandle statementHandle, CommandBehavior behavior, Boolean isReader, Boolean needRowid, OciHandle& rowidDescriptor, ArrayList& refCursorParameterOrdinals)
System.Data.OracleClient.OracleCommand.Execute(OciHandle statementHandle, CommandBehavior behavior, Boolean needRowid, OciHandle& rowidDescriptor)
System.Data.OracleClient.OracleCommand.ExecuteNonQueryInternal(Boolean needRowid, OciHandle& rowidDescriptor)
System.Data.OracleClient.OracleCommand.ExecuteNonQuery()
hbjwxt.DA.AdminDB.InsertFuncInfo(String FuncName, String FuncDescription) in e:\hbjwxt\da\syssecurity\admindb.cs:61
webs.sysSecurity.Moduleadmin.AddFuncBtn_Click(Object sender, EventArgs e) in e:\hbjwxt\webs\syssecurity\moduleadmin.aspx.cs:114
System.Web.UI.WebControls.LinkButton.OnClick(EventArgs e)
System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
System.Web.UI.Page.ProcessRequestMain()这是什么原因啊?我的数据库表名sysFuncDic ;字段 FuncName [NVarchar2](50) ;Description[NVarchar2](100)在线等,请大侠们帮忙了!!!
{
OracleConnection myConnection = new OracleConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
string sql = "insert into sysFuncDic(FuncName,Description) values(@FuncName,@FuncDescription)";
OracleCommand myCommand = new OracleCommand(sql, myConnection); myCommand.CommandType = CommandType.Text; OracleParameter parameterFuncName = new OracleParameter("@Funcname", OracleType.NVarChar, 50);
parameterFuncName.Value = FuncName;
myCommand.Parameters.Add(parameterFuncName); OracleParameter parameterFuncDescription = new OracleParameter("@Funcdescription", OracleType.NVarChar, 100);
parameterFuncDescription.Value = FuncDescription;
myCommand.Parameters.Add(parameterFuncDescription); myConnection.Open();
int result = myCommand.ExecuteNonQuery();
myConnection.Close();
if(result>0)
{
return true;
}
else
{
return false;
}
}
执行此函数时,程序报错:
ORA-01036: 非法的变量名/编号?
行 60: myConnection.Open();
行 61: int result = myCommand.ExecuteNonQuery(); (此行错误)
行 62: myConnection.Close();
行 63: if(result>0)[OracleException: ORA-01036: 非法的变量名/编号
]
System.Data.OracleClient.OracleConnection.CheckError(OciHandle errorHandle, Int32 rc)
System.Data.OracleClient.OracleParameterBinding.Bind(OciHandle statementHandle, NativeBuffer parameterBuffer, OracleConnection connection)
System.Data.OracleClient.OracleCommand.Execute(OciHandle statementHandle, CommandBehavior behavior, Boolean isReader, Boolean needRowid, OciHandle& rowidDescriptor, ArrayList& refCursorParameterOrdinals)
System.Data.OracleClient.OracleCommand.Execute(OciHandle statementHandle, CommandBehavior behavior, Boolean needRowid, OciHandle& rowidDescriptor)
System.Data.OracleClient.OracleCommand.ExecuteNonQueryInternal(Boolean needRowid, OciHandle& rowidDescriptor)
System.Data.OracleClient.OracleCommand.ExecuteNonQuery()
hbjwxt.DA.AdminDB.InsertFuncInfo(String FuncName, String FuncDescription) in e:\hbjwxt\da\syssecurity\admindb.cs:61
webs.sysSecurity.Moduleadmin.AddFuncBtn_Click(Object sender, EventArgs e) in e:\hbjwxt\webs\syssecurity\moduleadmin.aspx.cs:114
System.Web.UI.WebControls.LinkButton.OnClick(EventArgs e)
System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
System.Web.UI.Page.ProcessRequestMain()这是什么原因啊?我的数据库表名sysFuncDic ;字段 FuncName [NVarchar2](50) ;Description[NVarchar2](100)在线等,请大侠们帮忙了!!!
while(result.read())
{
return true;
}
else
{
return false;
}
myConnection.Close();
OracleDataReader result = myCommand.ExecuteNonQuery();
无法将类型“int”隐式转换为“System.Data.OracleClient.OracleDataReader”
2、变量名不要取得和字段名相同(把两个变量名换一个 如@aa,@bb)
3、Description 在有些系统里好像是关键字 试着换成 [Description](不知道oracle是不是这样写的),或是换个字段名祝好运
应该是
string sql = "insert into sysFuncDic(FuncName,Description) values(:FuncName,:FuncDescription)";参数定义:
OracleParameter parameterFuncName = new OracleParameter("Funcname", OracleType.NVarChar, 50);