C# 更新或插入规范化SQL数据库

C# 更新或插入规范化SQL数据库,c#,sql,asp.net-mvc-4,C#,Sql,Asp.net Mvc 4,我有一个一般性问题。在向规范化表中插入或更新时,您可以使用常规的insert或update SQL语句,还是在这里需要使用存储过程?我正在编写一个MVC应用程序,并决定不使用EF或LINQ,这样我可以在编写的同时学习SQL。是的。您可以使用常规插入或更新。 将存储过程视为SQL语句的别名。看看这个: 您可以使用其中一种。使用SQL Server的System.Data.SqlClient命名空间可以从内存和性能方面获得最佳效果。EF允许您为所有操作指定存储过程,这将是正确方向上的一个简单步骤。你

我有一个一般性问题。在向规范化表中插入或更新时,您可以使用常规的insert或update SQL语句,还是在这里需要使用存储过程?我正在编写一个MVC应用程序,并决定不使用EF或LINQ,这样我可以在编写的同时学习SQL。

是的。您可以使用常规插入或更新。 将存储过程视为SQL语句的别名。看看这个:

您可以使用其中一种。使用SQL Server的System.Data.SqlClient命名空间可以从内存和性能方面获得最佳效果。EF允许您为所有操作指定存储过程,这将是正确方向上的一个简单步骤。你唯一缺乏的经验是联系/状态管理

调用选择/插入/更新/删除等。。。直接从代码中获取语句是绝对可能的,但是出于一致性和维护原因,对于所有CRUD操作,我将默认使用存储过程

良好的句法结构:

using( System.Data.Common.DbConnection conn = new System.Data.SqlClient.SqlConnection("<<connection string>>)
{
     using(System.Data.Common.DbCommand cmd = conn.CreateCommand())
     {
         cmd.CommandType = <Choose either TEXT or StoredProcedure>;
         cmd.Text = "<T-SQL or name of sproc:"dbo.ProcedureName">;
         using( System.Data.Common.DbDataReader rdr = cmd.ExecuteReader() )
         {
              //if only reading 1 row
              if( rdr.Read() )  // the .Read() method will read row by row
              {

                  string s = (string) rdr["Column"];  //<-- best to always check for nulls.
              }

         }
}
使用(System.Data.Common.DbConnection conn=new System.Data.SqlClient.SqlConnection(“)
{
使用(System.Data.Common.DbCommand cmd=conn.CreateCommand())
{
cmd.CommandType=;
cmd.Text=“;
使用(System.Data.Common.DbDataReader rdr=cmd.ExecuteReader())
{
//如果只读一行
if(rdr.Read())//.Read()方法将逐行读取
{

string s=(string)rdr[“Column”];//无论表是否规范化,都可以使用常规插入或更新。