尝试与数据库进行通信时,我对如何将值作为参数(例如itemID)传递并获取具有此ID的记录感到困惑.这是我的存储过程:ALTER PROCEDURE [dbo].[sp_lightItem](@itemID INT)ASBEGINSELECT [itemID],[itemName],[itemL...

尝试与数据库进行通信时,我对如何将值作为参数(例如itemID)传递并获取具有此ID的记录感到困惑.
这是我的存储过程:
ALTER PROCEDURE [dbo].[sp_lightItem]
(
@itemID INT
)
AS
BEGIN
SELECT [itemID],
[itemName],
[itemLocation],
[itemChBy]
FROM [dbo].[Item]
WHERE itemSystemType='E' and itemID=@itemID ORDER BY itemID DESC;
END
到目前为止这是我的c#代码..
public string LoadItemNew(int ItemID)
{
var acf = new AcFunctions();
var newstorevalue = SqlHelper.ExecuteDataset(acf.AcConn(), "sp_lightItem", ItemID);
}
正如您在存储过程中看到的,我想要的是获取这4个元素:
[itemID],[itemName],[itemLocation],[itemChBy]
不幸的是我不知道如何让他们回来/如何在c#函数中调用它们.
欢迎任何帮助.
解决方法:
您可以尝试使用此方法,我将使用数据传输对象来保存从数据库中检索的数据,并使用Execute DataReader进行读取.
首先,您需要创建一个DTO类,我将其称为LightItemDTO
public class LightItemDTO
{
public int Id { get; set; }
public string Name { get; set; }
public string Location { get; set; }
public string ChangedBy { get; set; }
}
注意:如何知道属性的类型,可以参考以下链接:SQL Server Data Type Mappings
现在,我将使用ADO.NET执行存储过程以从数据库中获取数据
public IEnumerable<LightItemDTO> GetLightItem(string itemText, string sqlConnectionString)
{
var results = new List<LightItemDTO>();
using (var con = new SqlConnection(sqlConnectionString))
{
using (var cmd = new SqlCommand("sp_lightItem", con))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@ItemID", SqlDbType.VarChar).Value = itemText;
con.Open();
using (var reader = cmd.ExecuteReader())
{
results.Add(new LightItemDTO
{
Id = Convert.ToInt32(reader["itemID"]),
Name = reader["itemName"].ToString(),
Location = reader["itemLocation"].ToString(),
ChangedBy = reader["itemChBy"].ToString()
});
}
}
}
return results;
}
使用DataReader是高性能的最佳实践.
ADO.NET是实现此任务的手动方式,您可以使用一些ORM框架来做到更容易,例如:Entity Framework,Dapper.NET …
本文标题为:C#SQL存储过程调用值


基础教程推荐
- C#加解密之AES算法的实现 2023-06-28
- C#实现获取文件大小并进行比较 2023-07-18
- C# XML中的转义字符操作 2023-03-28
- C# 崩溃异常中研究页堆布局的详细过程 2023-07-05
- C#中Timer使用及解决重入问题 2022-10-28
- java 文件下载支持中文名称的实例 2022-11-27
- C#简单实现发送socket字符串 2022-12-31
- C#列表List<T>、HashSet和只读集合介绍 2023-06-05
- c# – Windows Phone上的Bing Map – 将点击事件添加到图钉;显示更多细节 2023-09-19
- C#对XmlHelper帮助类操作Xml文档的通用方法汇总 2023-05-26