【发布时间】:2021-02-25 23:42:17
【问题描述】:
我创建了一个 PL/SQL 函数并将其存储在我的 oracle 数据库中。现在我想在单击按钮时调用该函数。 我正在使用 Visual Studio 和 C#。
我卑微的尝试-
private void button3_Click(object sender, EventArgs e)
{
comm = new OracleCommand();
comm.CommandType = CommandType.StoredProcedure;
comm.Connection = conn;
String x1 = textBox1.Text;
String x2 = textBox2.Text;
comm.CommandText = "log_in";
comm.Parameters.Add(new OracleParameter("c", OracleDbType.Varchar2, textBox1.Text, ParameterDirection.Input));
comm.Parameters.Add(new OracleParameter("tt", OracleDbType.Varchar2, 256, ParameterDirection.ReturnValue));
String z = comm.Parameters["z"].Value.ToString();
comm.ExecuteNonQuery();
if (z.Equals('1'))
{ MessageBox.Show("correct"); }
conn.Close();
}
PL/SQL-
CREATE OR REPLACE FUNCTION log_in
(
x IN VARCHAR2,
y IN VARCHAR2
) RETURN VARCHAR2 AS
match_count NUMBER;
BEGIN
SELECT COUNT(*)
INTO match_count
FROM student_login
WHERE email = x
AND password = y;
IF match_count = 0 THEN
RETURN 0;
ELSE
RETURN 1;
END IF;
END;
注意-我的数据源是 oracle 的 .NET 框架数据提供者,答案是 odp.net
【问题讨论】:
-
那有什么问题?
-
当我点击按钮时表单关闭
-
我也只是在寻找一个一般性的答案...它可能不是针对这个问题...以更容易的为准
-
您是否尝试过设置断点并找出
String Z的值?它甚至达到那个地步吗?表单关闭的原因有很多,因此更多地了解事物的价值会有所帮助。 -
函数有两个参数。你只传递一个输入
标签: c# oracle visual-studio oracle11g