创建表
create table tb1(first_name number,name varchar2(40));下面是我用pl/SQL写的的删除存储过程
--创建包
CREATE OR REPLACE package TESTPACKAGE IS
PROCEDURE deleteRecords(v_first_name in number);
END TESTPACKAGE;--创建包体
CREATE OR REPLACE package body TESTPACKAGE IS
procedure deleteRecords(v_first_name in number)
is
begin
delete from tb1 where first_name=v_first_name;
end deleteRecords;
end TESTPACKAGE 在asp.NET程序中调用代码---------------------------------
/// <summary>
/// 刪除方法
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public int Deltb1ById(int id)
{
int num = 0;
string sql = "TESTPACKAGE.deleteRecords";
OracleConnection conn = new OracleConnection(ConfigurationManager.ConnectionStrings ["CONN"].ToString());
conn.Open();
OracleCommand cmd = new OracleCommand(sql, conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("v_first_name", OracleType.Int32, 4, "id");
num = cmd.ExecuteNonQuery();
return num;
}
/// <summary>
/// 刪除操作
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
int id = Convert.ToInt32(this.GridView1.DataKeys[e.RowIndex].Value.ToString());
int f = Convert.ToInt32(this.Deltb1ById(id));
if (f > 1)
{
ClientScript.RegisterStartupScript(this.GetType(), "onclick", "<script>alert('ok')</script>");
BindGridView();
}
else
{
ClientScript.RegisterStartupScript(this.GetType(), "onclick", "<script>alert('error')</script>");
BindGridView();
}
}
我用asp.net连接oracle8i数据库做个删除操作是报错了 点击删除按钮错误如下 请高人指点 谢谢。'/test' 應用程式中發生伺服器錯誤。
--------------------------------------------------------------------------------ORA-06550: 第 1 行, 第 7 個欄位:
PLS-00306: 呼叫 'DELETERECORDS' 時參數類型的數目錯誤
ORA-06550: 第 1 行, 第 7 個欄位:
PL/SQL: Statement ignored描述: 在執行目前 Web 要求的過程中發生未處理的例外情形。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。
例外詳細資訊: System.Data.OracleClient.OracleException: ORA-06550: 第 1 行, 第 7 個欄位:
PLS-00306: 呼叫 'DELETERECORDS' 時參數類型的數目錯誤
ORA-06550: 第 1 行, 第 7 個欄位:
PL/SQL: Statement ignored原始程式錯誤: 行 105: cmd.CommandType = CommandType.StoredProcedure;
行 106: cmd.Parameters.Add("v_first_name", OracleType.Int32, 4, "id");
行 107: num = cmd.ExecuteNonQuery();
行 108: return num;
行 109: }
原始程式檔: d:\project\test\Default.aspx.cs 行: 107
create table tb1(first_name number,name varchar2(40));下面是我用pl/SQL写的的删除存储过程
--创建包
CREATE OR REPLACE package TESTPACKAGE IS
PROCEDURE deleteRecords(v_first_name in number);
END TESTPACKAGE;--创建包体
CREATE OR REPLACE package body TESTPACKAGE IS
procedure deleteRecords(v_first_name in number)
is
begin
delete from tb1 where first_name=v_first_name;
end deleteRecords;
end TESTPACKAGE 在asp.NET程序中调用代码---------------------------------
/// <summary>
/// 刪除方法
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public int Deltb1ById(int id)
{
int num = 0;
string sql = "TESTPACKAGE.deleteRecords";
OracleConnection conn = new OracleConnection(ConfigurationManager.ConnectionStrings ["CONN"].ToString());
conn.Open();
OracleCommand cmd = new OracleCommand(sql, conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("v_first_name", OracleType.Int32, 4, "id");
num = cmd.ExecuteNonQuery();
return num;
}
/// <summary>
/// 刪除操作
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
int id = Convert.ToInt32(this.GridView1.DataKeys[e.RowIndex].Value.ToString());
int f = Convert.ToInt32(this.Deltb1ById(id));
if (f > 1)
{
ClientScript.RegisterStartupScript(this.GetType(), "onclick", "<script>alert('ok')</script>");
BindGridView();
}
else
{
ClientScript.RegisterStartupScript(this.GetType(), "onclick", "<script>alert('error')</script>");
BindGridView();
}
}
我用asp.net连接oracle8i数据库做个删除操作是报错了 点击删除按钮错误如下 请高人指点 谢谢。'/test' 應用程式中發生伺服器錯誤。
--------------------------------------------------------------------------------ORA-06550: 第 1 行, 第 7 個欄位:
PLS-00306: 呼叫 'DELETERECORDS' 時參數類型的數目錯誤
ORA-06550: 第 1 行, 第 7 個欄位:
PL/SQL: Statement ignored描述: 在執行目前 Web 要求的過程中發生未處理的例外情形。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。
例外詳細資訊: System.Data.OracleClient.OracleException: ORA-06550: 第 1 行, 第 7 個欄位:
PLS-00306: 呼叫 'DELETERECORDS' 時參數類型的數目錯誤
ORA-06550: 第 1 行, 第 7 個欄位:
PL/SQL: Statement ignored原始程式錯誤: 行 105: cmd.CommandType = CommandType.StoredProcedure;
行 106: cmd.Parameters.Add("v_first_name", OracleType.Int32, 4, "id");
行 107: num = cmd.ExecuteNonQuery();
行 108: return num;
行 109: }
原始程式檔: d:\project\test\Default.aspx.cs 行: 107
delete from tb1 where first_name=v_first_name; 可能是字段跟传入的参数类型不一样 。
把过程里面的参数类型改成下面的
v_first_name in tb1.first_name%type