Я использую адо.нет.
У меня есть функция jsp в моей базе данных, которая принимает 2 параметра и возвращает таблицу. Мне нужно запросить у пользователя два параметра, затем выполнить функцию jsp и вывести таблицу на экран. Вот что у меня есть на данный момент:
jspCmd = new SqlCommand(jspStmt, conn);
jspCmd.CommandType = CommandType.StoredProcedure;
jspCmd.Parameters.Add("@snum", SqlDbType.VarChar, 5);
jspCmd.Parameters.Add("@pnum", SqlDbType.VarChar, 5);
jspCmd.Prepare();
Console.WriteLine();
Console.WriteLine(@"Please enter S# and P# separated by blanks, or exit to terminate");
string line = Console.ReadLine();
Regex r = new Regex("[ ]+");
string[] fields = r.Split(line);
if (fields[0] == "exit") break;
jspCmd.Parameters[0].Value = fields[0];
jspCmd.Parameters[1].Value = fields[1];
jspCmd.ExecuteNonQuery();//<---I BELIEVE ERROR COMING FROM HERE
reader = jspCmd.ExecuteReader();//PRINT TABLE TO SCREEN
while (reader.Read())
{
Console.WriteLine(reader[0].ToString() + " "
+ reader[1].ToString()
+ " " + reader[2].ToString());
}
reader.Close();
Когда я запускаю это, я ввожу два параметра, и возникает исключение:
Program aborted: System.Data.SqlClient.SqlException (0x80131904): The request
for procedure 'jsp' failed because 'jsp' is a table valued function object.
Может ли кто-нибудь показать мне правильный способ сделать это?