我正在尝试使用论坛上一个文本字段中的值,用我拥有的数据库表中的相应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'。存在显式转换(您是否缺少演员表?)
答案 0 :(得分:0)
我找到了答案
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