看起来它连接正常并且除了返回数据或在datagridview上显示它之外的所有事情。我不确定这究竟是什么问题。如果我在SQL Server Management Studio中运行它,它在本地计算机上运行良好。
它似乎没有在这里正确运行,它只是一个按钮,我点击但没有任何回复给我。
SqlConnection conn = new SqlConnection(connectionstring);
SqlCommand StoredProcedureCommand = new SqlCommand("storedprocedure", conn);
StoredProcedureCommand.CommandType = CommandType.StoredProcedure;
SqlParameter myParam1 = StoredProcedureCommand.Parameters.Add("@p1", SqlDbType.VarChar, 20);
myParam1.Value = "Arg";
SqlParameter myParam2 = StoredProcedureCommand.Parameters.Add("@p2", SqlDbType.VarChar, 300);
myParam2.Value = "Gra";
try
{
conn.Open();
MessageBox.Show("Database Connection Success");
}
catch (Exception conerr)
{
MessageBox.Show("Database Connection Failed");
}
try
{
StoredProcedureCommand.ExecuteNonQuery();
MessageBox.Show("Running stored procedure succeeded");
}
catch (Exception proerr)
{
MessageBox.Show("Running stored procedure failed");
}
try
{
using (SqlDataAdapter adap = new SqlDataAdapter(StoredProcedureCommand))
{
DataTable dt = new DataTable();
int rowCount = dt.Rows.Count;
adap.Fill(dt);
dataGridView1.DataSource = dt;
MessageBox.Show("Data returned fine" + " This many rows were returned" + rowCount.ToString());
}
}
catch (Exception erradapt)
{
MessageBox.Show("Error retrieving data to grid" + erradapt.ToString());
}
try
{
conn.Close();
MessageBox.Show("Closing database connection");
}
catch (Exception errclose)
{
MessageBox.Show("Error closing database connection");
}
答案 0 :(得分:0)
我刚注意到你的rowCount变量将始终为0,因为它是在dt填充之前分配的。如果您将rowCount用于任何类型的循环,则循环将立即退出。而且你的信息总是会说"这很多行都回来了0"。
顺便说一下,我在我的应用程序中使用了类似的代码,它确实有效。
答案 1 :(得分:0)
感谢大家的帮助,问题是回到我注意到的存储过程后的连接字符串
谢谢大家的帮助!!