English 中文(简体)
Can comm 和参数
原标题:Can t Update with sqlcommand and Parameters

我在使用参数时很难更新我的2005年ql服务器数据库。 在这里,你可以看到通常必须使用的守则。 我准确无误地指出,我已经将其他治疗方法,如插入,并且做得很好。

myCommand.Parameters.AddWithValue("@Pk", this.pk);
myCommand.Parameters.AddWithValue("@Titre", this.titre);
myCommand.CommandText = "Update Action set titre=@Titre where pk=@Pk";

//Execute la commande
myCommand.ExecuteNonQuery();

EDIT: 采用硬代码,例如:

myCommand.CommandText = "Update Action set titre= title  where pk=@Pk";

it works...

最佳回答

我不知道你在什么地方错了,这是我的工作守则。

string strCon = @“Data Source=SYSTEM19SQLEXPRESS;Initial Catalog=TransactionDB;Integrated Security=True”;

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            SqlConnection cn = new SqlConnection(strCon);
            SqlCommand cmd = new SqlCommand("select * from tblTransaction1", cn);
            SqlDataAdapter da = new SqlDataAdapter();
            da.SelectCommand = cmd;
            DataSet ds = new DataSet();
            da.Fill(ds);
            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                txtName.Text = ds.Tables[0].Rows[i]["FirstName"].ToString();
                txtName1.Text = ds.Tables[0].Rows[i]["LastName"].ToString();
            }
        }
    }

Button 点击代码

protected void btnInsert_Click(object sender, EventArgs e)
{
    SqlConnection cn = new SqlConnection(strCon);
    obj1.FirstName = txtName.Text;
    obj1.LastName = txtName1.Text;
    if (obj1.upDate(cn))
    {

    }
}

Sample class code file

private bool m_flag = false;
        private string strFirstName;
        private string strLastName;

        public string FirstName
        {
            get { return strFirstName; }
            set { strFirstName = value; }
        }

        public string LastName
        {
            get { return strLastName; }
            set { strLastName = value; }
        }

public bool upDate(SqlConnection con)
    {
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = con;
        if (con.State != ConnectionState.Open)
        {
            con.Open();
        }

        try
        {
            cmd.Parameters.AddWithValue("@Fname", FirstName);
            cmd.Parameters.AddWithValue("@Lname", LastName);
            cmd.CommandText = "Update tblTransaction1 set LastName=@Lname where FirstName=@Fname";
            if (cmd.ExecuteNonQuery() > 0)
            {
                m_flag = true;
            }
        }
        catch
        {

        }
        return m_flag;
    }

样本

“Form

“Database

“Changing

“

问题回答

当你忘记把“共同点”参数包括在内时,我就看到了我们的成果。 既然你在Kalk使用,就应当将其定为“CommandType.Text”。

myCommand.Parameters.AddWithValue("@Pk", this.pk);
myCommand.Parameters.AddWithValue("@Titre", this.titre);
myCommand.CommandText = "Update Action set titre=@Titre where pk=@Pk";

// Added CommandType //
myCommand.CommandType = CommandType.Text;

//Execute la commande
myCommand.ExecuteNonQuery();

我已注意到,将整部法典复制为一个新项目提供了帮助。 我的守则有好几次工作,第二天不会,或者只能为其他人而不是我工作。 通常,这是因为项目设计方在从贵项目中添加和删除代码。 仅仅因为你删除了具体的代码,并不意味着该方案可以更新整个类别/项目。

如果是:

Int32 rowsAffected = command.ExecuteNonQuery();
Console.WriteLine("RowsAffected: {0}", rowsAffected);

它说什么?

还要预先确定您的行动表格,例如:

myCommand.CommandText = "Update MySchema.Action set titre=@Titre where pk=@Pk";

有时这取决于图解和用户更新该图谱的权利。

你们可以尝试:不要增加这样的参数:

myCommand.Parameters.AddWithValue("@Titre", this.titre);

您应加上数据类型。

myCommand.Parameters.Add(new SqlParameter("@Titre", SqlDbType.VarChar, 50));
myCommand.Parameters["@Titre"].Value = this.titre;

这样,最后一份文件将是<代码>。 Update Action set titre=titre und Update Action set titre=title/code. 认为在第二份发言titre中,不在引文内。

在宣布指挥后添加参数。

myCommand.CommandText = "Update Action set titre=@Titre where pk=@Pk";
myCommand.Parameters.AddWithValue("@Pk", this.pk);
myCommand.Parameters.AddWithValue("@Titre", this.titre);


//Execute la commande
myCommand.ExecuteNonQuery();

我发现了一些东西。 http://forums.asp.net/t/1249831.aspx/1“rel=“nofollow” http://forums.asp.net/t/1249831.aspx/1。





相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

How to Add script codes before the </body> tag ASP.NET

Heres the problem, In Masterpage, the google analytics code were pasted before the end of body tag. In ASPX page, I need to generate a script (google addItem tracker) using codebehind ClientScript ...

Transaction handling with TransactionScope

I am implementing Transaction using TransactionScope with the help this MSDN article http://msdn.microsoft.com/en-us/library/system.transactions.transactionscope.aspx I just want to confirm that is ...

System.Web.Mvc.Controller Initialize

i have the following base controller... public class BaseController : Controller { protected override void Initialize(System.Web.Routing.RequestContext requestContext) { if (...

Microsoft.Contracts namespace

For what it is necessary Microsoft.Contracts namespace in asp.net? I mean, in what cases I could write using Microsoft.Contracts;?

Separator line in ASP.NET

I d like to add a simple separator line in an aspx web form. Does anyone know how? It sounds easy enough, but still I can t manage to find how to do it.. 10x!