c# - 如何在 Visual Studio 的存储过程中使用查询来使用另一列中的值从表中获取 ID
问题描述
我正在尝试使用论坛上文本字段中的值来用我拥有的数据库表中的相应 ID 填充另一个文本字段。
我的程序是
CREATE PROCEDURE [dbo].[spGet_PersonId_byName]
@PersonName VARCHAR(50)
AS
BEGIN
SELECT dbo.People.ID
FROM dbo.People
WHERE dbo.People.Name = @PersonName;
END
我认为问题在于我如何称呼它,我需要获取一个字符串值以在我的文本字段中使用。
这是论坛代码:
private void PersonNameDropDownBox_TextChanged(object sender, EventArgs e)
{
string NameToUse = PersonNameDropDownBox.Text;
foreach (IDataConnection db in GlobalConfig.Connections)
{
PersonIDTextBox.Text = db.PersonIdLookup(NameToUse).PersonId.ToString();
}
}
这就是方法
public PersonModel PersonIdLookup(string NameToUse)
{
PersonModel OutPutModel;
using (IDbConnection connection = new System.Data.SqlClient.SqlConnection(GlobalConfig.CnnString(db)))
{
var i = new DynamicParameters();
i.Add("@PersonName", NameToUse);
OutPutModel = connection.Query<PersonModel>("[Trial DB].dbo.spGet_PersonId_byName", i, commandType: CommandType.StoredProcedure);
}
return OutPutModel;
}
很抱歉数据混乱,但我对这一切都很陌生。
它不会构建,因为我收到此错误
无法将类型“System.Collections.Generic.IEnumerable<TestingClassLibrary.PersonModel>”隐式转换为“TestingClassLibrary.PersonModel”。存在显式转换(您是否缺少演员表?)
解决方案
我发现答案是
private void PersonNameDropDownBox_TextChanged(object sender, EventArgs e)
{
string NameToUse = PersonNameDropDownBox.Text;
foreach (IDataConnection db in GlobalConfig.Connections)
{
PersonIDTextBox.Text = db.PersonIdLookup(NameToUse);
}
}
和
public string PersonIdLookup(string NameToUse)
{
string OutputId;
using (IDbConnection connection = new System.Data.SqlClient.SqlConnection(GlobalConfig.CnnString(db)))
{
var i = new DynamicParameters();
i.Add("@PersonName", NameToUse);
OutputId = connection.ExecuteScalar<string>("[Trial DB].dbo.spGet_Person_byName",i,commandType: CommandType.StoredProcedure);
}
return OutputId;
}
CREATE PROCEDURE [dbo].[spGet_PersonId_byName]
@PersonName VARCHAR(50)
AS
BEGIN
SELECT dbo.People.ID
FROM dbo.People
WHERE dbo.People.Name = @PersonName;
END
推荐阅读
- bash - 与本地相比,Grep 在 Travis 上的行为不同
- c# - 在 Unity2d 中,我有一个由 rigibody addforce 移动的圆圈。如果它是移动平台的孩子,它会变形并且比例会变得奇怪
- excel - 如何将我已经拥有的工作簿保存为 CSV,并使用用户通过输入框提供的新名称?
- php - 错误的值插入到 oauth_access_token 表中
- vb.net - 在一个命令中打开多个“Form2”
- python-3.x - Jupyter 实验室只在私有 ip 上打开,而不是在公共 ip 上打开
- mysql - “如何连接两个数组的数据并插入mysql数据库?”
- css - 响应式网站应该有的最大断点是多少?
- kubernetes - Kubernetes 中哪些卷类型最适合存储主机配置?
- docker - Nginx 保留代理 https 和 http 连接错误