C# 使用存储过程将数据从Sql Server 2008提取到windows窗体
我编写了以下存储过程,根据提供的用户名从SQLServer数据库获取数据,并将其显示在表单上 存储过程 C#代码C# 使用存储过程将数据从Sql Server 2008提取到windows窗体,c#,sql-server-2008,stored-procedures,C#,Sql Server 2008,Stored Procedures,我编写了以下存储过程,根据提供的用户名从SQLServer数据库获取数据,并将其显示在表单上 存储过程 C#代码 上面的代码告诉我一个错误,说第0行不存在。我在stackoverflow上找到了类似的文章,但没有得到满意的解决方案。有人能告诉我将数据从数据库提取到表单的正确方法,以及如何将数据提取到数据表中,然后将其提取到Textbox控件中吗?哪一行是正确的您是否出错?@Taumantis txtname update.Text=dt.Rows[0][“FirstName”].ToString
上面的代码告诉我一个错误,说第0行不存在。我在stackoverflow上找到了类似的文章,但没有得到满意的解决方案。有人能告诉我将数据从数据库提取到表单的正确方法,以及如何将数据提取到数据表中,然后将其提取到Textbox控件中吗?哪一行是正确的您是否出错?@Taumantis txtname update.Text=dt.Rows[0][“FirstName”].ToString();此lineafter apd.Fill dt变量为空?还是有记录?dt.Rows.Count()/dt.Count显示了什么?看起来您的SP只是不返回任何数据,我建议您分析一下数据库,看看SQL在运行什么。实际上,我很惊讶它运行时没有出现错误,因为它看起来会执行sql
EXEC Proc\u FetchClients'fred'
,它在SP名称和firstname文本之间没有空格。您还应该使用参数而不是字符串连接。@BenRobinson我执行了存储过程EXEC Proc_FetchClients'Vivek',它在Sql Server上运行良好
ALTER Procedure [dbo].[Proc_FetchClients]
@FirstName nvarchar(100)
As
--Declare @ReturnVal varchar(100)
SELECT FirstName,LastName,Email,Username,DateOfBirth,Address,PhoneNo,ClientType from Clients
where FirstName=@FirstName
RETURN
private void btnUpdate_Click(object sender, EventArgs e)
{
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-GB", false);
//Mainform = new Form1(Login);
string FetchClient = "EXEC Proc_FetchClients'" + TxtUsernameUpdate + "'";
DataTable dt = new DataTable();
adp = new OleDbDataAdapter(FetchClient, con);
adp.Fill(dt);
TxtNameUpdate.Text = dt.Rows[0]["FirstName"].ToString();
TxtClientTypeUpdate.Text = dt.Rows[0]["ClientType"].ToString();
TxtLnameUpdate.Text = dt.Rows[0]["LastName"].ToString();
TxtEmailUpdate.Text = dt.Rows[0]["Email"].ToString();
TxtUsernameUpdate.Text = dt.Rows[0]["Username"].ToString();
TxtDobUpdate.Text = dt.Rows[0]["DateOfBirth"].ToString();
TxtAddressUpdate.Text = dt.Rows[0]["Address"].ToString();
TxtPhoneUpdate.Text = dt.Rows[0]["PhoneNo"].ToString();
}