首页 / C# / C#SQL存储过程调用值
C#SQL存储过程调用值
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#SQL存储过程调用值,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1842字,纯文字阅读大概需要3分钟。
内容图文
![C#SQL存储过程调用值](/upload/InfoBanner/zyjiaocheng/909/601cd0d592ee467ca71923f726fd7df4.jpg)
尝试与数据库进行通信时,我对如何将值作为参数(例如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#SQL存储过程调用值所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。