为什么我无法使用此代码更新我的SQL Server表?

时间:2016-05-30 02:43:41

标签: c# asp.net sql-server

目前,我一直在使用asp.net对网站进行编程,该网站从Microsoft SQL Server中提取和更新数据。

现在我需要更新某个表中某些列的某个值,但我的更新SqlCommand无效。我已经在互联网上做了一些研究,但它没有用。没有错误,但单击按钮时,行{Critical}上的WeightageFactor列中的SQL Server表中的值未更新。我使用这个SQL查询,它工作得很好:

UPDATE dbo.HullPoF 
SET WeightageFactor = 0.10 
WHERE Criticality = 'Fatigue Loading'

这是我的代码:

protected void btnSubmitPoF_Click(object sender, EventArgs e)
{
    conn1 = new SqlConnection(ConfigurationManager.ConnectionStrings["myDBconn1"].ConnectionString);

    commPoF = new SqlCommand("UPDATE dbo.HullPoF SET WeightageFactor = @WF WHERE Criticality='Fatigue Loading'", conn1);
    commPoF.Parameters.Add("@WF", System.Data.SqlDbType.NVarChar).Value = txtWFFatLoad.Text; ;

    conn1.Open();
    commPoF.ExecuteNonQuery();
    conn1.Close();
}

我的代码出了什么问题?我尝试使用的解决方案之一来自Update table using SqlCommand in asp.net

当前值为0.20,我想更改为0.10

p / s:这是我在本网站的第一个问题。如果我的问题格式有误,请告诉我。

4 个答案:

答案 0 :(得分:1)

我复制了你的问题,语法是正确的。检查连接字符串。

答案 1 :(得分:1)

如果WeightageFactor 加倍,请将其转换并发送给参数

double WF = double.Parse( txtWFFatLoad.Text);
commPoF.Parameters.Add("@WF", SqlDbType.Float);
commPoF.Parameters["@WF"].Value = WF;

如果WeightageFactor 字符串那么 使用

commPoF.Parameters.AddWithValue("@WF",txtWFFatLoad.Text);

答案 2 :(得分:1)

替换

commPoF.Parameters.Add("@WF", System.Data.SqlDbType.NVarChar).Value = txtWFFatLoad.Text;

commPoF.Parameters.AddWithValue("@WF", txtWFFatLoad.Text);

答案 3 :(得分:1)

在回顾了项目中的数百个代码行,特别是在Page_Load中,似乎问题与回发功能有关。

我所要做的就是放

while(scanner.hasNextLine()) { String line = scanner.nextLine(); if(line.equals(name)) { bw.write(documentToSave + "\n"); } else { bw.write(line + "\n"); } }

我在Page_Load中的一些代码

很抱歉,因为我的愚蠢错误而浪费了所有时间。