-1

我有以下代码:

OpeningForm of = new OpeningForm();
of.ShowDialog();

SqlConnection SqlBaglanti = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=MolaTakip; integrated security=true");
SqlBaglanti.Open();

SqlCommand komut = new SqlCommand("AgentBilgisiDondur')", SqlBaglanti);
komut.CommandType = System.Data.CommandType.StoredProcedure;
komut.Parameters.AddWithValue("@LoginName", ThisAgent.LoginName);

SqlDataReader dr = komut.ExecuteReader();

while (dr.Read())
{
    ThisAgent.AgentID = int.Parse(dr["UserID"].ToString());
    ThisAgent.AgentAdi = dr["UserName"].ToString();
}
SqlBaglanti.Close();

FileStream fs = new FileStream(@"C:\agent.bin", FileMode.OpenOrCreate);

BinaryFormatter bf = new BinaryFormatter();

bf.Serialize(fs, ThisAgent);

所有这些代码都写在Form_Load事件中。但是表单加载在

SqlDataReader dr = komut.ExecuteReader();

行,其他命令未运行。

4

3 回答 3

2

你确定语法吗?

SqlCommand komut = new SqlCommand("AgentBilgisiDondur')", SqlBaglanti);

我认为您有一个存储过程,称为 AgentBilgisiDondur 而不是 AgentBilgisiDondur')

SqlCommand komut = new SqlCommand("AgentBilgisiDondur", SqlBaglanti);

一个建议:也尽量使用英文,因为你的专栏是英文的,例如UserName. 所以你可以试试ReturnAgentInformation;)

于 2012-08-18T11:44:53.103 回答
0

您必须使用 sql 命令而不是 sqlconnection 本身打开数据库连接。您正确地将 t 传递给命令。现在命令必须打开它。

SqlBaglanti.Open();在调用ExecuteReader()添加此行之前删除:

SqlCommand.Connection.Open();

于 2012-08-18T11:36:22.240 回答
0

错误是您没有正确的参数(您是否错过了一些参数,例如存储过程的密码代理或存储过程的名称错误)请检查

于 2012-08-18T11:42:00.503 回答