c# - 为什么它一直在说 "cannot find table 0"?

标签 c# sql-server visual-studio-2008

我正在创建一个具有添加-编辑-删除功能的系统,但每当我尝试从我的 MS SQL Server 2005 编辑一个值时,它总是告诉我“找不到表 0”。下面是我使用 visual studio c# 2008 的代码:

private void button2_Click(object sender, EventArgs e)
    {
        try
        {
            SqlDataAdapter dad = new SqlDataAdapter();
            SqlCommandBuilder scb = new SqlCommandBuilder(dad);

            dad.UpdateCommand = new SqlCommand("UPDATE tblSchools SET Number = @id, School_Name = @school, Province = @prov, City = @city, Brgy = @brgy, Lot_Num = @lot, Area = @area, Mem_Date_Rec = @date, Cenro = @cenro", conn);
            dad.UpdateCommand.Parameters.Add("@school", SqlDbType.VarChar).Value = textBox1.Text;
            dad.UpdateCommand.Parameters.Add("@prov", SqlDbType.VarChar).Value = comboBox1.Text;
            dad.UpdateCommand.Parameters.Add("@city", SqlDbType.VarChar).Value = textBox2.Text;
            dad.UpdateCommand.Parameters.Add("@brgy", SqlDbType.VarChar).Value = textBox4.Text;
            dad.UpdateCommand.Parameters.Add("@lot", SqlDbType.NVarChar).Value = textBox5.Text;
            dad.UpdateCommand.Parameters.Add("@area", SqlDbType.Decimal).Value = textBox6.Text;
            dad.UpdateCommand.Parameters.Add("@date", SqlDbType.DateTime).Value = dateTimePicker1.Value.Date;
            dad.UpdateCommand.Parameters.Add("@cenro", SqlDbType.NVarChar).Value = textBox8.Text;
            dad.UpdateCommand.Parameters.Add("@id", SqlDbType.Int).Value = ds.Tables[0].Rows[tblNamesBS.Position][0];

            conn.Open();
            dad.UpdateCommand.ExecuteNonQuery();
            conn.Close();


        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

在代码之上我做了一个全局函数

 DataSet ds = new DataSet();

    SqlConnection conn = new SqlConnection("Data Source=MJ-PC\\SQLEXPRESS;Initial Catalog=Users;Integrated Security=True");


    BindingSource tblNamesBS = new BindingSource();

这似乎是什么问题??

哦,加起来我制作了一个具有双击事件的 datagridview,下面是我的代码:

private void dg_DoubleClick(object sender, EventArgs e)
    {
        try
        {
            button2.Visible = true;
            button5.Visible = true;
            DataTable dt = new DataTable();
            SqlDataAdapter dad = new SqlDataAdapter("SELECT * FROM tblSchools WHERE Number ="+
                Convert.ToInt16(dg.SelectedRows[0].Cells[0].Value.ToString()) + "", conn);
            dad.Fill(dt);

            textBox1.Text = dt.Rows[0][1].ToString();
            comboBox1.Text = dt.Rows[0][2].ToString();
            textBox2.Text = dt.Rows[0][3].ToString();
            textBox4.Text = dt.Rows[0][4].ToString();
            textBox5.Text = dt.Rows[0][5].ToString();
            textBox6.Text = dt.Rows[0][6].ToString();
            //dateTimePicker1.Value = dt.Rows[0][7];
            textBox8.Text = dt.Rows[0][8].ToString();



        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
    }

此代码会影响我的编辑吗?

最佳答案

你声明了一个空数据集

DataSet ds = new DataSet();

稍后您尝试访问其中的 Table[0] 但没有定义。

关于c# - 为什么它一直在说 "cannot find table 0"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23601520/

相关文章:

C# - 如何确定映射的 EXE 配置文件中是否存在配置节?

c# - WPF 组合框和 ListView 子项问题

sql-server - TSQL 更新语句 MS SQL Server 2008 R2

c# - 在 T-SQL 中返回重复行

visual-studio-2008 - 如何在 Visual Studio 2008 中的整个解决方案上运行 FxCop

c# - 如何将文件写入 Internet Explorer Mobile 的响应?

c# - 3d 对象未渲染

SQL Server 非空列更新具有唯一约束

c++ - 无法在编译器优化设置为“最大化速度”(/O2) 的 Visual Studio 中观察变量值

visual-studio-2008 - VS2008/TFS 中待更改到剪贴板的文件列表