2013-11-22 33 views
0

当前我正在制作一个程序,并且要连接到数据库。使用ADO.NET连接到SQL Server存储过程

我想知道如何使用ADO.NET概念连接到数据库。

我生成的步骤很少。请按照以下步骤操作。

  1. 生成ValidateModel.edmx(ADO.NET)。

    • 与MS SQL服务器连接已经完全键入的ID和密码。
  2. 生成Windows应用程序窗体并尝试调用。

任何人都知道一些提示如何连接到SQL Server或某些命令。

我已经尝试连接使用Microsoft.Practices.EnterpriseLibrary。

但是,创建数据库时有例外。

private string dbInstance = "testEntities"; 

try 
{ 
    Database db = DatabaseFactory.CreateDatabase(dbInstance); 
    DbCommand dbCommand = db.GetStoredProcCommand("GetUserNameByUserId"); 
    db.AddInParameter(dbCommand, "@UserId", DbType.String, sPIN); 
    db.AddOutParameter(dbCommand, "@UserName", DbType.String, 30); //sTechnicianName 
    sTechnicianName = db.ExecuteScalar(dbCommand).ToString(); 
} 

并且有TypeInitializationException。

testEntities信息设置在App.Config中。

回答

5

下面是一个例子使用的SqlConnection:

int result; 

using (SqlConnection conn = new SqlConnection("hereYourConnectionString")) 
{ 
    conn.Open(); 
    using (SqlCommand cmd = new SqlCommand("StoredProcedureName", conn)) 
    { 
     cmd.CommandType = CommandType.StoredProcedure; 

     // input parameters 
     cmd.Parameters.Add(new SqlParameter("@paramName", paramValue)); 

     // output parameters 
     SqlParameter retval = cmd.Parameters.Add("@returnValue", SqlDbType.Int); // assiming that the return type is an int 
     retval.Direction = ParameterDirection.ReturnValue; 

     cmd.ExecuteNonQuery(); 
     result = (int)cmd.Parameters["@returnValue"].Value; // assuming is an int 
    }    
} 

但一定要检查Data Provider Factory Model

+0

+1提的SQL参数,并且-1不是暗示该命令的'using'关键字和连接对象。 – Brian

+0

你说得对,我修改了答案。谢谢 – 2013-11-22 21:17:21

+0

+1,谢谢。 – Brian