TECHNOLOGIES
FORUMS
JOBS
BOOKS
EVENTS
INTERVIEWS
Live
MORE
LEARN
Training
CAREER
MEMBERS
VIDEOS
NEWS
BLOGS
Sign Up
Login
No unread comment.
View All Comments
No unread message.
View All Messages
No unread notification.
View All Notifications
Answers
Post
An Article
A Blog
A News
A Video
An EBook
An Interview Question
Ask Question
Forums
Monthly Leaders
Forum guidelines
watsoncharles
NA
1
0
can't update in datagrid button
Dec 5 2004 2:31 PM
I am using Northwest DB and a datagrid.This is the error I keep getting when I select the update button on the datagrid. "Specified argument was out of the range of valid values. Parameter name: index" Here is my code: using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; namespace WebSub1 { ///
/// Summary description for WebForm1. ///
public class WebForm1 : System.Web.UI.Page { protected System.Web.UI.WebControls.Label Label1; protected System.Data.SqlClient.SqlConnection sqlConnection1; protected System.Web.UI.WebControls.Label ErrorMessage; protected System.Data.SqlClient.SqlDataAdapter sqlDataAdapter1; protected System.Data.SqlClient.SqlCommand sqlSelectCommand1; protected System.Data.SqlClient.SqlCommand sqlInsertCommand1; protected System.Data.SqlClient.SqlCommand sqlUpdateCommand1; protected System.Data.SqlClient.SqlCommand sqlDeleteCommand1; protected WebSub1.dsWebSub2 dsWebSub21; protected System.Web.UI.WebControls.DataGrid DataGrid1; protected System.Data.SqlClient.SqlDataAdapter sqlDataAdapter2; protected System.Data.SqlClient.SqlCommand sqlSelectCommand2; protected System.Data.SqlClient.SqlCommand sqlInsertCommand2; protected System.Data.SqlClient.SqlCommand sqlUpdateCommand2; protected System.Data.SqlClient.SqlCommand sqlDeleteCommand2; protected System.Data.SqlClient.SqlConnection sqlConnection2; protected WebSub1.DataSet2 dataSet21; protected System.Web.UI.WebControls.TextBox TextBox1; private void Page_Load(object sender, System.EventArgs e) { // Put user code to initialize the page here if (!IsPostBack) { bindGrid(); } } #region Web Form Designer generated code override protected void OnInit(EventArgs e) { // // CODEGEN: This call is required by the ASP.NET Web Form Designer. // InitializeComponent(); base.OnInit(e); } ///
/// Required method for Designer support - do not modify /// the contents of this method with the code editor. ///
private void InitializeComponent() { this.sqlConnection1 = new System.Data.SqlClient.SqlConnection(); this.sqlDataAdapter1 = new System.Data.SqlClient.SqlDataAdapter(); this.sqlDeleteCommand1 = new System.Data.SqlClient.SqlCommand(); this.sqlInsertCommand1 = new System.Data.SqlClient.SqlCommand(); this.sqlSelectCommand1 = new System.Data.SqlClient.SqlCommand(); this.sqlUpdateCommand1 = new System.Data.SqlClient.SqlCommand(); this.dsWebSub21 = new WebSub1.dsWebSub2(); this.sqlDataAdapter2 = new System.Data.SqlClient.SqlDataAdapter(); this.sqlSelectCommand2 = new System.Data.SqlClient.SqlCommand(); this.sqlInsertCommand2 = new System.Data.SqlClient.SqlCommand(); this.sqlUpdateCommand2 = new System.Data.SqlClient.SqlCommand(); this.sqlDeleteCommand2 = new System.Data.SqlClient.SqlCommand(); this.sqlConnection2 = new System.Data.SqlClient.SqlConnection(); this.dataSet21 = new WebSub1.DataSet2(); ((System.ComponentModel.ISupportInitialize)(this.dsWebSub21)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.dataSet21)).BeginInit(); this.DataGrid1.CancelCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.cancelChange); this.DataGrid1.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.editRow); this.DataGrid1.UpdateCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.updateRow); this.DataGrid1.DeleteCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.deleteRow); // // sqlConnection1 // this.sqlConnection1.ConnectionString = "workstation id=DADNOTE;packet size=4096;integrated security=SSPI;data source=DADN" + "OTE;persist security info=False;initial catalog=subjob4SQL"; // // sqlDataAdapter1 // this.sqlDataAdapter1.DeleteCommand = this.sqlDeleteCommand1; this.sqlDataAdapter1.InsertCommand = this.sqlInsertCommand1; this.sqlDataAdapter1.SelectCommand = this.sqlSelectCommand1; this.sqlDataAdapter1.TableMappings.AddRange(new System.Data.Common.DataTableMapping[] { new System.Data.Common.DataTableMapping("Table", "TeacherSubs", new System.Data.Common.DataColumnMapping[] { new System.Data.Common.DataColumnMapping("LastName", "LastName"), new System.Data.Common.DataColumnMapping("FirstName", "FirstName"), new System.Data.Common.DataColumnMapping("JobID", "JobID")})}); this.sqlDataAdapter1.UpdateCommand = this.sqlUpdateCommand1; // // sqlDeleteCommand1 // this.sqlDeleteCommand1.CommandText = "DELETE FROM TeacherSubs WHERE (JobID = @Original_JobID)"; this.sqlDeleteCommand1.Connection = this.sqlConnection1; this.sqlDeleteCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_JobID", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "JobID", System.Data.DataRowVersion.Original, null)); // // sqlInsertCommand1 // this.sqlInsertCommand1.CommandText = "INSERT INTO TeacherSubs(LastName, FirstName, JobID) VALUES (@LastName, @FirstName" + ", @JobID); SELECT LastName, FirstName, JobID FROM TeacherSubs WHERE (JobID = @Jo" + "bID)"; this.sqlInsertCommand1.Connection = this.sqlConnection1; this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@LastName", System.Data.SqlDbType.VarChar, 2147483647, "LastName")); this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@FirstName", System.Data.SqlDbType.VarChar, 2147483647, "FirstName")); this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@JobID", System.Data.SqlDbType.Int, 4, "JobID")); // // sqlSelectCommand1 // this.sqlSelectCommand1.CommandText = "SELECT LastName, FirstName, JobID FROM TeacherSubs"; this.sqlSelectCommand1.Connection = this.sqlConnection1; // // sqlUpdateCommand1 // this.sqlUpdateCommand1.CommandText = "UPDATE TeacherSubs SET LastName = @LastName, FirstName = @FirstName, JobID = @Job" + "ID WHERE (JobID = @Original_JobID); SELECT LastName, FirstName, JobID FROM Teach" + "erSubs WHERE (JobID = @JobID)"; this.sqlUpdateCommand1.Connection = this.sqlConnection1; this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@LastName", System.Data.SqlDbType.VarChar, 2147483647, "LastName")); this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@FirstName", System.Data.SqlDbType.VarChar, 2147483647, "FirstName")); this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@JobID", System.Data.SqlDbType.Int, 4, "JobID")); this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_JobID", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "JobID", System.Data.DataRowVersion.Original, null)); // // dsWebSub21 // this.dsWebSub21.DataSetName = "dsWebSub2"; this.dsWebSub21.Locale = new System.Globalization.CultureInfo("en-US"); // // sqlDataAdapter2 // this.sqlDataAdapter2.DeleteCommand = this.sqlDeleteCommand2; this.sqlDataAdapter2.InsertCommand = this.sqlInsertCommand2; this.sqlDataAdapter2.SelectCommand = this.sqlSelectCommand2; this.sqlDataAdapter2.TableMappings.AddRange(new System.Data.Common.DataTableMapping[] { new System.Data.Common.DataTableMapping("Table", "Employees", new System.Data.Common.DataColumnMapping[] { new System.Data.Common.DataColumnMapping("LastName", "LastName"), new System.Data.Common.DataColumnMapping("FirstName", "FirstName"), new System.Data.Common.DataColumnMapping("EmployeeID", "EmployeeID")})}); this.sqlDataAdapter2.UpdateCommand = this.sqlUpdateCommand2; // // sqlSelectCommand2 // this.sqlSelectCommand2.CommandText = "SELECT LastName, FirstName, EmployeeID FROM Employees"; this.sqlSelectCommand2.Connection = this.sqlConnection2; // // sqlInsertCommand2 // this.sqlInsertCommand2.CommandText = "INSERT INTO Employees(LastName, FirstName) VALUES (@LastName, @FirstName); SELECT" + " LastName, FirstName, EmployeeID FROM Employees WHERE (EmployeeID = @@IDENTITY)"; this.sqlInsertCommand2.Connection = this.sqlConnection2; this.sqlInsertCommand2.Parameters.Add(new System.Data.SqlClient.SqlParameter("@LastName", System.Data.SqlDbType.NVarChar, 20, "LastName")); this.sqlInsertCommand2.Parameters.Add(new System.Data.SqlClient.SqlParameter("@FirstName", System.Data.SqlDbType.NVarChar, 10, "FirstName")); // // sqlUpdateCommand2 // this.sqlUpdateCommand2.CommandText = @"UPDATE Employees SET LastName = @LastName, FirstName = @FirstName WHERE (EmployeeID = @Original_EmployeeID) AND (FirstName = @Original_FirstName) AND (LastName = @Original_LastName); SELECT LastName, FirstName, EmployeeID FROM Employees WHERE (EmployeeID = @EmployeeID)"; this.sqlUpdateCommand2.Connection = this.sqlConnection2; this.sqlUpdateCommand2.Parameters.Add(new System.Data.SqlClient.SqlParameter("@LastName", System.Data.SqlDbType.NVarChar, 20, "LastName")); this.sqlUpdateCommand2.Parameters.Add(new System.Data.SqlClient.SqlParameter("@FirstName", System.Data.SqlDbType.NVarChar, 10, "FirstName")); this.sqlUpdateCommand2.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_EmployeeID", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "EmployeeID", System.Data.DataRowVersion.Original, null)); this.sqlUpdateCommand2.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_FirstName", System.Data.SqlDbType.NVarChar, 10, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "FirstName", System.Data.DataRowVersion.Original, null)); this.sqlUpdateCommand2.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_LastName", System.Data.SqlDbType.NVarChar, 20, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "LastName", System.Data.DataRowVersion.Original, null)); this.sqlUpdateCommand2.Parameters.Add(new System.Data.SqlClient.SqlParameter("@EmployeeID", System.Data.SqlDbType.Int, 4, "EmployeeID")); // // sqlDeleteCommand2 // this.sqlDeleteCommand2.CommandText = "DELETE FROM Employees WHERE (EmployeeID = @Original_EmployeeID) AND (FirstName = " + "@Original_FirstName) AND (LastName = @Original_LastName)"; this.sqlDeleteCommand2.Connection = this.sqlConnection2; this.sqlDeleteCommand2.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_EmployeeID", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "EmployeeID", System.Data.DataRowVersion.Original, null)); this.sqlDeleteCommand2.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_FirstName", System.Data.SqlDbType.NVarChar, 10, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "FirstName", System.Data.DataRowVersion.Original, null)); this.sqlDeleteCommand2.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_LastName", System.Data.SqlDbType.NVarChar, 20, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "LastName", System.Data.DataRowVersion.Original, null)); // // sqlConnection2 // this.sqlConnection2.ConnectionString = "workstation id=DADNOTE;packet size=4096;integrated security=SSPI;data source=\"DAD" + "NOTE\\SQLSUB\";persist security info=False;initial catalog=Northwind"; // // dataSet21 // this.dataSet21.DataSetName = "DataSet2"; this.dataSet21.Locale = new System.Globalization.CultureInfo("en-US"); this.Load += new System.EventHandler(this.Page_Load); ((System.ComponentModel.ISupportInitialize)(this.dsWebSub21)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.dataSet21)).EndInit(); } #endregion private void bindGrid() { sqlConnection2.Open(); sqlDataAdapter2.Fill(dataSet21); DataGrid1.DataBind(); //TextBox1.Text = dsWebSub21.TeacherSubs.LastNameColumn; sqlConnection1.Close(); } private void sqlDataAdapter1_RowUpdated(object sender, System.Data.SqlClient.SqlRowUpdatedEventArgs e) { } private void sqlConnection1_InfoMessage(object sender, System.Data.SqlClient.SqlInfoMessageEventArgs e) { } private void deleteRow(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { try { ErrorMessage.Text = ""; SqlCommand delCommand = new SqlCommand(); delCommand.Connection = sqlConnection1; delCommand.CommandText = "DELETE FROM TeacherSubs WHERE LastName = '" + e.Item.Cells[0].Text + "'"; delCommand.CommandType = CommandType.Text; sqlConnection1.Open(); delCommand.ExecuteNonQuery(); sqlDataAdapter1.Fill(dsWebSub21); //Cache["CustomerData"] = dataSet1; bindGrid(); sqlConnection1.Close(); } catch (Exception ex) { ErrorMessage.Text = ex.Message; } // Code to delete the item from the data source. //DataTable aTable = (DataTable)DataList1.DataSource; //aTable.Rows[e.Item.ItemIndex].Delete(); // Bind the data after the item is deleted. //DataList1.DataBind(); } private void editRow(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { DataGrid1.EditItemIndex = e.Item.ItemIndex; bindGrid(); } private void cancelChange(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { DataGrid1.EditItemIndex = -1; bindGrid(); } private void DataGrid1_SelectedIndexChanged(object sender, System.EventArgs e) { } private void updateRow(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { try { ErrorMessage.Text = ""; SqlCommand updCommand = new SqlCommand(); updCommand.Connection = sqlConnection2; updCommand.CommandText = " UPDATE Employees SET LastName = '" + ((TextBox)e.Item.Cells[1].Controls[0]).Text + " WHERE EmployeeID = '" + ((TextBox)e.Item.Cells[3].Controls[0]).Text + "'"; updCommand.CommandType = CommandType.Text; sqlConnection2.Open(); updCommand.ExecuteNonQuery(); sqlDataAdapter1.Fill(dsWebSub21); //Cache["CustomerData"] = dataSet1; DataGrid1.EditItemIndex = -1; bindGrid(); sqlConnection1.Close(); } catch (Exception ex) { ErrorMessage.Text = ex.Message; } } } }
Reply
Answers (
0
)
multiple insert statement
Where to declare/define the database connection part in C#