【发布时间】:2014-07-07 23:10:19
【问题描述】:
存储过程:
CREATE OR REPLACE PROCEDURE insertMovie(
p_m_id IN MOVIE.M_ID%TYPE,
p_movie_name IN MOVIE.MOVIE_NAME%TYPE,
p_year IN MOVIE.YEAR%TYPE,
p_category IN MOVIE.CATEGORY%TYPE)
IS
BEGIN
INSERT INTO MOVIE ("M_ID", "MOVIE_NAME", "YEAR", "CATEGORY")
VALUES (p_m_id, p_movie_name,p_year, p_category);
END;
/
这是我创建的将数据插入movie 表的过程。现在我试图通过 C# 调用它。我已经尝试了以下代码,但它不起作用。
在这方面的一点帮助将不胜感激。谢谢
private void button1_Click(object sender, EventArgs e)
{
dbConnection conObj = new dbConnection();
OracleConnection theConn = conObj.connFunc();
String p_m_id, p_movie_name, p_year, p_category;
p_m_id = movie_id.Text;
p_movie_name = movie_name.Text;
p_year = year.Text;
p_category = category.Text;
OracleParameter parChoiceIn = new OracleParameter();
OracleParameter parDataIn = new OracleParameter();
OracleParameter parOut = new OracleParameter();
parChoiceIn.ParameterName = "p_m_id";
parChoiceIn.OracleType = OracleType.Number;
parChoiceIn.Size = 32;
parChoiceIn.Direction = System.Data.ParameterDirection.Input;
parChoiceIn.Value = p_m_id;
parDataIn.ParameterName = "p_movie_name";
parDataIn.OracleType = OracleType.VarChar;
parDataIn.Size = 32;
parDataIn.Direction = System.Data.ParameterDirection.Input;
parDataIn.Value = p_movie_name;
parDataIn.ParameterName = "p_year";
parDataIn.OracleType = OracleType.Number;
parDataIn.Size = 32;
parDataIn.Direction = System.Data.ParameterDirection.Input;
parDataIn.Value = p_year;
parDataIn.ParameterName = "p_category";
parDataIn.OracleType = OracleType.VarChar;
parDataIn.Size = 32;
parDataIn.Direction = System.Data.ParameterDirection.Input;
parDataIn.Value = p_category;
OracleCommand cmd = theConn.CreateCommand();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "insertMovie";
cmd.Parameters.Add(parChoiceIn);
cmd.Parameters.Add(parDataIn);
cmd.Parameters.Add(parOut);
theConn.Open();
OracleDataAdapter adapter = new OracleDataAdapter(cmd);
DataSet myset = new DataSet("theResCur");
adapter.Fill(myset);
theGrid.DataSource = myset;
theGrid.DataSource = myset.Tables[0];
theConn.Close();
}
}
【问题讨论】:
-
有什么错误吗?有关您所经历的事情的更多信息可以帮助那些提供帮助的人。
-
请定义“不工作”。
-
不应该是
VALUES (:p_m_id, :p_movie_name,:p_year, :p_category);吗? -
您不会使用 INSERT 语句填充数据集。您必须调用 cmd.ExecuteNonQuery()
-
没有错误但是当我按下插入按钮时没有任何反应我的意思是没有数据插入到 oracle 表中@Bun
标签: c# oracle stored-procedures