C#应用程序停止

时间:2012-08-18 11:28:13

标签: c# sql

我有以下代码:

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();

行,其他命令未运行。

3 个答案:

答案 0 :(得分:2)

你确定语法吗?

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

我认为你有一个名为AgentBilgisiDondur的存储过程而不是AgentBilgisiDondur')

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

建议:同时尝试使用英语,因为您的专栏是英文版,例如UserName。所以你可以尝试ReturnAgentInformation;)

答案 1 :(得分:0)

您必须使用sql命令而不是sqlconnection本身打开数据库连接。 你正确地通过了命令。现在命令必须打开它。

在致电SqlBaglanti.Open();之前删除ExecuteReader()

  

SqlCommand.Connection.Open();

答案 2 :(得分:0)

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