我的存储过程
CREATE PROCEDURE dbo.InsertData
(
@Yname varchar (50),
@sex varchar (50),
@qq varchar (50),
@email varchar (50),
@homepage varchar (50),
@caption varchar (50),
@content text )
AS
    INSERT INTO guest (Yname,sex,qq,email,homepage,caption,content) 
    values(@Yname,@sex,@qq,@email,@homepage,@caption,@content)     
RETURN GO我的C#源码
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
namespace Leaveword
{
/// <summary>
/// test3 的摘要说明。
/// </summary>
public class test3 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button Button1;
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.Label Label2;
protected System.Web.UI.WebControls.Label Label3;
protected System.Web.UI.WebControls.Label Label4;
protected System.Web.UI.WebControls.Label Label5;
protected System.Web.UI.WebControls.Label Label6;
protected System.Web.UI.WebControls.Label Label7;
protected System.Web.UI.WebControls.TextBox Yname;
protected System.Web.UI.WebControls.TextBox Ysex;
protected System.Web.UI.WebControls.TextBox YQQ;
protected System.Web.UI.WebControls.TextBox YEmail;
protected System.Web.UI.WebControls.TextBox Yhomepage;
protected System.Web.UI.WebControls.TextBox Ycaption;
protected System.Web.UI.WebControls.TextBox Ycontent;
protected System.Web.UI.WebControls.Button Button2;

private void Page_Load(object sender, System.EventArgs e)
{ }
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{    
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion
private SqlConnection cnPubs;
private SqlCommand cmdPubs;
private SqlCommand cmdUpdPubs;
private SqlDataAdapter daPubs;
private DataSet dsPubs; private void Button1_Click(object sender, System.EventArgs e)
{ try
{

// 创建一个数据库连接对象
cnPubs = new SqlConnection( "server=KANG;integrated security=true;database=guestbook" );
Response.Write("aaaaa");
// 创建一个SqlCommand对象,并指明其命令类型为存储过程
cmdPubs = new SqlCommand();
cmdPubs.Connection = cnPubs;
cmdPubs.CommandType = CommandType.StoredProcedure;
cmdPubs.CommandText = "InsertData";
Response.Write(cmdPubs.CommandText);// // 创建另一个SqlCommand对象,该对象引用更新发行商名称的存储过程
// cmdUpdPubs = new SqlCommand();
// cmdUpdPubs.Connection = cnPubs;
// cmdUpdPubs.CommandType = CommandType.StoredProcedure;
// cmdUpdPubs.CommandText = "InsertData"; // 为上面的SqlCommand对象添加必要的参数
cmdPubs.Parameters.Add( "@Yname", SqlDbType.VarChar, 50, Yname.Text);
cmdPubs.Parameters.Add( "@sex", SqlDbType.VarChar, 50, Ysex.Text);
cmdPubs.Parameters.Add( "@qq", SqlDbType.VarChar, 50, YQQ.Text );
cmdPubs.Parameters.Add( "@email", SqlDbType.VarChar, 50, YEmail.Text );
cmdPubs.Parameters.Add( "@homepage", SqlDbType.VarChar, 50, Yhomepage.Text );
cmdPubs.Parameters.Add( "@caption", SqlDbType.VarChar, 50, Ycaption.Text );
//SqlParameter updParam = new SqlParameter( "@Original_pub_name", SqlDbType.VarChar, 40, "pub_name" );
//updParam.SourceVersion = DataRowVersion.Original;
cmdPubs.Parameters.Add( "@content", SqlDbType.Text, 16, Ycontent.Text);
Response.Write(Ycaption.Text); // 创建一个SqlDataAdapter对象,设定其SelectCommand属性和UpdateCommand对象为上面的SqlCommand对象
daPubs = new SqlDataAdapter();
//                cmdPubs.ExecuteNonQuery();
daPubs.InsertCommand = cmdPubs;
//daPubs.InsertCommand = cmdUpdPubs;
//daPubs.InsertCommand.ExecuteNonQuery();
Response.Write("aaaaadddd");

// 创建一个DataSet对象
dsPubs = new DataSet();



}
catch(Exception){} // 调用SqlDataAdapter对象的Fill()方法并返回数据集对象
//daPubs.Fill( dsPubs );
//return dsPubs; }
}}
为什么数据库中没有新记录插入呢?
另外怎么才能查看一下存储过程是否执行了呢?
如果遇到这种问题应该怎么调试???!!!
随声附和的和灌水者不给分!!!

解决方案 »

  1.   

    changecatch(Exception){}===>
    catch(Exception ex)
    {
     Response.Write(ex.Message);
    }估计是
    cnPubs = new SqlConnection( "server=KANG;integrated security=true;database=guestbook" );
    问题,把ASPNET账号(或者,如果是windows 2003的话,Network Service账号)加到数据库
    去,或采用SQL认证,参考http://www.connectionstrings.comHOW TO: Configure SQL Server Security for .NET Applications
    http://support.microsoft.com/kb/815154PRB:在创建从 ASP.NET 到 SQL Server 的受信任数据连接时出现“Login Failed”(登录失败)错误信息
    http://support.microsoft.com/kb/316989/zh-cn
    int n = cmdPubs.ExecuteNonQuery();
    if (n > 0)
     //成功加入
      

  2.   

    把连接字符串该一下试试!
    cnPubs = new SqlConnection( "server=KANG;uid=sa;database=guestbook pwd=;" );
      

  3.   

    执行类似这样的语句                                     cmdPubs.Connection.Open();
    cmdPubs.ExecuteNonQuery();
    cmdPubs.Connection.Close();
      

  4.   

    执行语句 cmdPubs.ExecuteNonQuery();
    被注释了,估计是在DataSet中调用更新语句如果想在上面的代码执行插入语句,
    先要 cnPubs.Open();
    再 cmdPubs.ExecuteNonQuery();
      

  5.   

    // 创建一个数据库连接对象
    cnPubs = new SqlConnection( "server=KANG;integrated security=true;database=guestbook" );
    // 创建一个SqlCommand对象,并指明其命令类型为存储过程
    cmdPubs = new SqlCommand();
    cmdPubs.Connection = cnPubs;
    cmdPubs.CommandType = CommandType.StoredProcedure;
    cmdPubs.CommandText = "InsertData"; // 为上面的SqlCommand对象添加必要的参数
    cmdPubs.Parameters.Add( "@Yname", SqlDbType.VarChar, 50, Yname.Text);
    cmdPubs.Parameters.Add( "@sex", SqlDbType.VarChar, 50, Ysex.Text);
    cmdPubs.Parameters.Add( "@qq", SqlDbType.VarChar, 50, YQQ.Text );
    cmdPubs.Parameters.Add( "@email", SqlDbType.VarChar, 50, YEmail.Text );
    cmdPubs.Parameters.Add( "@homepage", SqlDbType.VarChar, 50, Yhomepage.Text );
    cmdPubs.Parameters.Add( "@caption", SqlDbType.VarChar, 50, Ycaption.Text );
    cmdPubs.Parameters.Add( "@content", SqlDbType.Text, 16, Ycontent.Text); cmdPubs.Connection.Open();
    cmdPubs.ExecuteNonQuery();
    cmdPubs.Connection.Close();
      

  6.   

    try
    http://blog.csdn.net/zhzuo/archive/2004/08/06/67037.aspx
    http://blog.csdn.net/zhzuo/archive/2005/01/03/238273.aspx
      

  7.   

    已经调试成功,但是不知道原因;正确代码是:
    cmdPubs.Parameters.Add( "@Yname", Yname.Text);
    cmdPubs.Parameters.Add( "@sex", Ysex.Text);
    cmdPubs.Parameters.Add( "@qq", YQQ.Text );
    cmdPubs.Parameters.Add( "@email", YEmail.Text );
    cmdPubs.Parameters.Add( "@homepage", Yhomepage.Text );
    cmdPubs.Parameters.Add( "@caption", Ycaption.Text );
    cmdPubs.Parameters.Add( "@content", Ycontent.Text); 写成这样
    cmdPubs.Parameters.Add( "@homepage", SqlDbType.VarChar, 50, Yhomepage.Text );
    cmdPubs.Parameters.Add( "@caption", SqlDbType.VarChar, 50, Ycaption.Text );
    就不可以啦;