using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace ADO_DataSet_Prac
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
DataSet ds = new DataSet();
SqlDataAdapter da;
DataTable dt;
private void Form1_Load(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection("Server = localhost; Database = MSNETDB; Integrated Security=True;MultipleActiveResultSets=True");
da = new SqlDataAdapter("Select * from Emp",con);
da.Fill(ds, "Emp");
dt=ds.Tables["Emp"];
gvEmp.DataSource = dt;
//Insert command for data adapter
SqlCommand cmdInsert = new SqlCommand("Insert into Emp(EmpName,EmpSalary) Values(@Name,@Salary)", con);
SqlParameter Name = cmdInsert.Parameters.Add("@Name", SqlDbType.VarChar, 100);
SqlParameter Salary = cmdInsert.Parameters.Add("@Salary", SqlDbType.Money);
Name.SourceColumn = "EmpName";
Salary.SourceColumn = "EmpSalary";
da.InsertCommand = cmdInsert;
//Update command for data adapter
SqlCommand cmdUpdate = new SqlCommand("Update Emp set EmpName =@Name, EmpSalary =@Salary where EmpId=@Id", con);
SqlParameter Id = cmdUpdate.Parameters.Add("@Id", SqlDbType.Int);
Name.SourceColumn = "EmpName";
Salary.SourceColumn = "EmpSalary";
Id.SourceColumn = "EmpId";
da.UpdateCommand = cmdUpdate;
}
private void btnDa_Update_Click(object sender, EventArgs e)
{
da.Update(ds,"Emp"); //Exception throw here
}
}
}
更新しようとすると、次のようなSqlException
ことわざが表示されます。
スカラー変数「@Name」を宣言する必要があります。
例外がスローされます
da.update(ds,"Emp")
データアダプタの方法。理由はわかりません。すべての構文とエラーを確認しましたが、すべて正常に見えますが、それでもエラーがスローされます。私もブレークポイントで試しましたが、運がありませんでした。