c# - 在 C# 中使用存储过程

标签 c# .net database stored-procedures

我正在使用 C# 开发一个数据库应用程序。我需要在表格上显示数据,现在我已经完成了。但是我的业务逻辑是硬编码到我的代码中的。现在我想继续在我的代码中使用存储过程。我需要做哪些修改。一个简单的步骤列表就足够了:)

SqlConnection myConnection = new SqlConnection("user id=dbblabla;" + 
            "password=1234;server=localhost\\SQLEXPRESS;" + 
            "Trusted_Connection=yes;" + 
            "database=myDB; " + 
            "connection timeout=30");

try
{
    myConnection.Open();
} catch (SqlException excep){
    Console.WriteLine(excep.StackTrace);
}

String selectionQuery = "SELECT * FROM myTable";
SqlDataAdapter myAdapter = new SqlDataAdapter(selectionQuery,myConnection);

DataSet ds = new DataSet();
myAdapter.Fill(ds,"AllInfo");

dataGridSearchOutput.DataSource = ds.Tables["AllInfo"].DefaultView;

我从创建一个新的 SQL 命令开始,但我不确定我使用的方法是否正确。

SqlCommand newCommand = new SqlCommand("SELECT * FROM PMInfo");
newCommand.CommandType = CommandType.StoredProcedure;

最佳答案

存储过程

CREATE PROCEDURE addemp
     @eno int,
     @ename varchar(50),
     @edate datetime
AS
  declare @p int

  select @p=count(*) from emp
      where eno=@eno
  if @p=0
     begin
       insert into emp
         values (@eno,@ename,@edate)
     end        
    RETURN

C#代码

    SqlConnection cn = new SqlConnection(@"conn_str");
    SqlCommand cmd = new SqlCommand("addemp", cn);
    cmd.CommandType = CommandType.StoredProcedure;

    cmd.Parameters.AddWithValue("@eno", 10);
    cmd.Parameters.AddWithValue("@ename", "Mr.Xyz");
    cmd.Parameters.AddWithValue("@edate", DateTime.Parse("1-1-2002"));

    cn.Open();
    cmd.ExecuteNonQuery();
    cn.Close();

关于c# - 在 C# 中使用存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1383406/

相关文章:

c# - 在控制台应用程序的文本输出期间对按键使用react

c# - 重构WCF服务

c# - Html Agility Pack,通过站点搜索指定的字符串

.net - 在 .NET 中使用 DataColumn.Expression 属性的嵌套 IF 语句

c# - 当 DateTime 传递给采用 Nullable DateTime 的方法时,为什么我会丢失 DateTime 的毫秒数?

c# - 如何在 C# 中使用 StreamReader 从特定位置读取文件?

mysql - 在 visual studio 中使用 MySQL 并在运行时更改连接

php - 数据库凭证加密 - CodeIgniter

sql - Visual Studio 2015 生成实体关系图

database - Doctrine 中给出的 Symfony2 : spl_object_hash() expects parameter 1 to be object, 字符串