子窗体部分using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace main
{
public partial class form1 : Form
{
TreeNode _ParentNode; int _InfoId = -1;
public void SetInfoId(int 编号)
{
_InfoId = 编号;
}
Core.InfoState _InfoState = main.Core.InfoState.NEW; public void SetInfoState(Core.InfoState infoState)
{
_InfoState = infoState;
} public form1()
{
InitializeComponent();
}
public form1(TreeNode parentNode)
{
InitializeComponent();
this._ParentNode = parentNode;
InitGridView(Int32.Parse(parentNode.Tag.ToString()));
InitControlState();
}
private void InitControlState()
{
switch (_InfoState)
{
case main.Core.InfoState.NEW:
button1.Enabled = true;
button2.Enabled = false;
break;
case main.Core.InfoState.MODIFY:
button1.Enabled = false;
button2.Enabled = true;
break;
}
}
private void GetInfo()
{ } private void InitGridView(int 编号)
{
DataSet dataSet = Core.DbUtil.GetDataSet("tree", "编号=" + 编号.ToString(), "编号 desc"); dataGridView1.DataSource = dataSet.Tables[0];
} public void form1_Load(object sender, EventArgs e)
{
// TODO: 这行代码将数据加载到表“mainDataSet18.tree”中。您可以根据需要移动或移除它。
this.treeTableAdapter2.Fill(this.mainDataSet18.tree);
}
public void treeDataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
{ } private void button1_Click(object sender, EventArgs e)
{
string sql = "INSERT INTO tree(编号,treeID,类别名称,产品名称,规格型号,parentId,备注) VALUES(@编号,@treeID,@类别名称,@产品名称,@规格型号, @parentId,@备注)";
SqlConnection conn = new SqlConnection(Core.DbUtil.GetConnectionString());
SqlCommand cmd = new SqlCommand(sql, conn); cmd.Parameters.Add(new SqlParameter("@编号", SqlDbType.Int ));
cmd.Parameters["@编号"].Value = 编号TextBox.Text.Trim(); cmd.Parameters.Add(new SqlParameter("@treeID", SqlDbType.NVarChar));
cmd.Parameters["@treeID"].Value = treeIDTextBox.Text.Trim(); cmd.Parameters.Add(new SqlParameter("@类别名称", SqlDbType.NVarChar));
cmd.Parameters["@类别名称"].Value = 类别名称TextBox.Text.Trim(); cmd.Parameters.Add(new SqlParameter("@产品名称", SqlDbType.NVarChar));
cmd.Parameters["@产品名称"].Value = 产品名称TextBox.Text.Trim(); cmd.Parameters.Add(new SqlParameter("@规格型号", SqlDbType.NVarChar));
cmd.Parameters["@规格型号"].Value = 规格型号TextBox.Text.Trim(); cmd.Parameters.Add(new SqlParameter("@parentId", SqlDbType.Int));
cmd.Parameters["@parentId"].Value = parentIdTextBox.Text.Trim(); cmd.Parameters.Add(new SqlParameter("@备注", SqlDbType.NVarChar));
cmd.Parameters["@备注"].Value = 备注TextBox.Text.Trim();
int i = 0;
try
{
conn.Open();
i = cmd.ExecuteNonQuery(); }
catch (Exception)
{ }
finally
{
conn.Close();
} if (i > 0)
{
DataSet ds = Core.DbUtil.GetDataSet(1, "tree", "parentId=" + _ParentNode.Tag.ToString(), " 编号 desc");
int 编号= Int32.Parse(ds.Tables[0].Rows[0]["编号"].ToString()); //在这里,把添加节点
TreeNode node = new TreeNode();
node.Text = 产品名称TextBox.Text.Trim();
node.Tag = 编号;
_ParentNode.Nodes.Add(node);
InitGridView(Int32.Parse(_ParentNode.Tag.ToString()));
_ParentNode.Expand();
} }
}
}
解决方案 »
- Dictianary相同键的值相加
- Remoting服务端放在ADSL网络中,返回远程对象至客户端,调用时出问题
- 父子表如何查询
- ORA-01036: 非法的变量名/编号(高手捡分了)!
- 关于继承窗体没有了设计视图的问提?
- 请问堆和堆栈到底是什么东西2者有什么区别
- 连接和操作数据库的常见有ADAPTER,READER,DATASET,COMMAND,各有什么特点?讨论
- datalist中找不到控件DropDownList 未将对象引用设置到对象的实例.
- ~~~~~~~~~~~~梅雨季节怎样防止显示器潮湿?~~~~~~~~~~~~~
- MM急救,两个相同的表A1,表A2?如何拷贝一行的数据?
- c#如何获得ad域中所有机器的ip地址
- Gridview中的删除功能
别人怎么看啊?
错误很简单
就是有的对象没有实例化
你可以单步跟踪调试一下就知道了~~~~~
出错在这个位置。private void InitGridView(int 编号)
{
DataSet dataSet = Core.DbUtil.GetDataSet("tree", "编号=" + 编号.ToString(), "编号 desc"); dataGridView1.DataSource = dataSet.Tables[0];
}
我扫了一下,
dataGridView1是null
dataSet的是{System.Data.DataSet}
dataSet.Tablesr 的是{System.Data.DataSet.collection}
connection.open()貌似你都没用过
dataGridView1.DataBind();
using System.Collections.Generic;
using System.Text;namespace main.Core
{
/// <summary>
/// 信息当前的状态
/// </summary>
public enum InfoState
{
/// <summary>
/// 新增
/// </summary>
NEW,
/// <summary>
/// 修改
/// </summary>
MODIFY
}
} * 等 级:
发表于:2007-12-18 15:48:0812楼 得分:0
dataGridView1.DataSource = dataSet.Tables[0];
dataGridView1.DataBind();这么做是不行的