所以目前我试图围绕存储过程的概念,特别是在SQL中。我正在使用Microsoft SQL Server Manager Studio,并且已经尝试了一些基本的存储过程,我还找到了一种从C#代码执行存储过程的方法。但是:是否可以从C#调用存储过程,将特定变量作为参数提供,就像它是一个方法一样,让过程将这些变量写入列中(也就是在INSERT INTO中使用它们)?这可能吗?
答案 0 :(得分:-1)
对于您的程序,存储过程只是数据库中的另一个对象,例如表或视图。它们的调用方式没有太大区别。
存储过程示例:
connection = new SqlConnection
{
ConnectionString = ConfigurationManager.ConnectionStrings[DatabaseConnectionName].ConnectionString
};
connection.Open();
//storedProcedureName is from your database
command = new SqlCommand(@"[dbo].[storedProcedureName]", connection)
{
CommandType = CommandType.StoredProcedure
};
//passing a parameter to the stored procedure
command.Parameters.AddWithValue("@StudyID", khStudyId);
reader = command.ExecuteReader();
从代码中调用SQL:
onnection = new SqlConnection(ConfigurationManager.ConnectionStrings[DatabaseConnectionName].ConnectionString);
connection.Open();
command = new SqlCommand(@"[dbo].[UserInformation]", connection)
{
CommandType = CommandType.Text
};
command.Parameters.AddWithValue("@StudyName", sponsorName);
command.CommandText = @"select ID from [dbo].[Sponsors] where [Name] = @StudyName";
reader = command.ExecuteReader();
if (reader != null)
{
if (reader.Read())
{
output = Convert.ToInt32(reader["ID"]);
}
}