C#编程添加有GUID列的表至数据库,该如何处理
C#编程添加有GUID列的表至数据库
小弟最近在开发一个数据库程序,用的是VS2005和SQL2005,碰到这样的一个功能没法实现,希望有高手指教。
在数据库中建立了一个表LearnedPointTable,包含列{PointID,PointName,HorizontalAngle},其中PointID是用数据库的NEWID()方法自动生成的GUID。小弟在winform窗体上添加了一个datagridview,三个按钮。datagridviw用来现实表LearnedPointTable,三个按钮分别是“添加数据”、“删除数据”和“保存数据”。显示数据时没有使用数据绑定空间,直接用代码连接数据库,datagridview不现实表的第一列。显示功能我已经实现了,代码如下。
现在碰到的问题是,我用按钮“添加数据”添加一行字符串数组类型的{PointName,HorizontalAngle}(例如 {"X6","123.234"})到datagridview,报错“当控件被数据绑定时,无法以编程方式向 DataGridView 的行集合中添加行。”
我非常想实现,通过添加按钮添加或删除datagridview的一行数据,通过保存按钮将最后结果保存到数据库。
如果直接在datatable中添加数据,就碰到GUID无法添加的问题了。
请各位兄弟姐妹帮帮小弟,在此感激不尽!
------解决方案--------------------
小弟最近在开发一个数据库程序,用的是VS2005和SQL2005,碰到这样的一个功能没法实现,希望有高手指教。
在数据库中建立了一个表LearnedPointTable,包含列{PointID,PointName,HorizontalAngle},其中PointID是用数据库的NEWID()方法自动生成的GUID。小弟在winform窗体上添加了一个datagridview,三个按钮。datagridviw用来现实表LearnedPointTable,三个按钮分别是“添加数据”、“删除数据”和“保存数据”。显示数据时没有使用数据绑定空间,直接用代码连接数据库,datagridview不现实表的第一列。显示功能我已经实现了,代码如下。
- C# code
private SqlDataAdapter sqlAdapter; private DataSet dataSet; private SqlConnection sqlConn = new SqlConnection("Server=.;uid=sa;pwd=1234;database=TDMSdataBase"); private void AddPoints_Load(object sender, EventArgs e) { //查询数据库用的SQL语句 string sqlCmd = "SELECT * FROM LearnedPointTable"; // 创建数据集对象 sqlAdapter = new SqlDataAdapter(sqlCmd, sqlConn); // 创建数据集对象 dataSet = new DataSet("TDMSdataBase"); // 填充数据集 sqlAdapter.Fill(dataSet, "LearnedPointTable"); LearnedPoints.DataSource = dataSet.Tables["LearnedPointTable"]; LearnedPoints.Columns["PointID"].Visible = false; LearnedPoints.Columns["PointName"].HeaderText = "点名"; LearnedPoints.Columns["PointName"].ReadOnly = false; LearnedPoints.Columns["HorizontalAngle"].HeaderText = "水平角"; LearnedPoints.Columns["HorizontalAngle"].ReadOnly = true; sqlConn.Close(); }
现在碰到的问题是,我用按钮“添加数据”添加一行字符串数组类型的{PointName,HorizontalAngle}(例如 {"X6","123.234"})到datagridview,报错“当控件被数据绑定时,无法以编程方式向 DataGridView 的行集合中添加行。”
我非常想实现,通过添加按钮添加或删除datagridview的一行数据,通过保存按钮将最后结果保存到数据库。
如果直接在datatable中添加数据,就碰到GUID无法添加的问题了。
请各位兄弟姐妹帮帮小弟,在此感激不尽!
------解决方案--------------------
- C# code
datatable中添加数据,就碰到GUID无法添加的问题了--> GUID用GUID.NewGuid().ToString()