CREATE PROCEDURE test AS
select * from aa;
GO
 
string sqlconn = "server=(local);database=base;integrated security=SSPI;";
sqlConn = new SqlConnection(sqlconn);
try 
{
     sqlConn.Open();
     string select = "exec test";
     SqlCommand cmd = new SqlCommand(select, sqlConn);  
     SqlDataReader reader = cmd.ExecuteReader();  
     while (reader.Read())  
     {
          string DBout = string.Format("cityid:{0} city:{1} area:{2}", reader[0], reader[1], reader[2]);
          MessageBox.Show(DBout);
     }  
}
catch (Exception err) 
{
     MessageBox.Show("sql server:" + err.Message);
}我SERVER2000就写了上面的存储过程在base下,C#下用exec为什么提示找不到存储过程呢

解决方案 »

  1.   

    SqlCommand cmd = new SqlCommand(select, sqlConn);  
    cmd.CommandType = CommandType.StoredProcedure;//说明执行的语句是存储过程
      

  2.   

    string select = "test";  只要存储过程名字 就可以了
      

  3.   

    存储过程名字叫“test”,commandtext却等于"exec test",找得到就见鬼了
      

  4.   

    SqlCommand cmd = new SqlCommand(select, sqlConn); 
    cmd.CommandType = CommandType.Text;
    检查用户操作权限 
      

  5.   

    SqlCommand cmd = new SqlCommand(select, sqlConn);   
    cmd.CommandType = CommandType.StoredProcedure
      

  6.   

    我PUBLIC有给EXEC的权限呀  也试过了  还是不行也
      

  7.   

    CREATE PROCEDURE test AS
    select * from aa;
    GO
     
    string sqlconn = "server=(local);database=base;integrated security=SSPI;";
    sqlConn = new SqlConnection(sqlconn);
    try 
    {
      sqlConn.Open();
      string select = "exec test";
      SqlCommand cmd = new SqlCommand(select, sqlConn);  
      SqlDataReader reader = cmd.ExecuteReader();  
      while (reader.Read())  
      {
      string DBout = string.Format("cityid:{0} city:{1} area:{2}", reader[0], reader[1], reader[2]);
      MessageBox.Show(DBout);
      }  
    }
    catch (Exception err) 
    {
      MessageBox.Show("sql server:" + err.Message);
    }我SERVER2000就写了上面的存储过程在base下,C#下用exec为什么提示找不到存储过程呢你这是什么玩意, SQL 和 C# 能写在一起。
      

  8.   

    你 需要指定 CommandType 为 StoredProcedure
      

  9.   

    然后确定你的 存储过程, 没有 建错数据库。最后每次 都 use dbname 下。
      

  10.   

                string sqlconn = "server=(local);database=base;integrated security=SSPI;";
                sqlConn = new SqlConnection(sqlconn);
                 
                try 
                {
                    sqlConn.Open();
                    string select = "test";
                    SqlCommand cmd = new SqlCommand(select, sqlConn);
                    cmd.CommandType = CommandType.StoredProcedure;
                    //SqlCommand cmd = new SqlCommand(select, sqlConn);  
                    SqlDataReader reader = cmd.ExecuteReader();  
                    while (reader.Read())  
                    {
                        string DBout = string.Format("cityid:{0} city:{1} area:{2}", reader[0], reader[1], reader[2]);
                        MessageBox.Show(DBout);
                    }  
                }
                catch (Exception err) 
                {
                    MessageBox.Show("sql server:" + err.Message);
                    conn.Close();
                    Environment.Exit(0);
                }这样子吗   自学外加有点笨 不好意思   刚才也这样写过  还是不行
      

  11.   

    好吧 解决了 = =   是SQL数据库安装错误 认不到存储过程
    虽说我的SELECET也写错 要用游标提取 不过至少不会一开始就报找不到存储过程