作者relievezaoc (shu)
看板Database
标题[SQL ] c# access insert语法问题
时间Sun May 19 22:23:37 2013
参考书藉:visual c# 2010 速学对策
资料库他讲到select的写法:
OleDbDataAdapter da = new OleDbDataAdapter();
DataSet ds = new DataSet();
string Sql = "select * from [Score]";
da.SelectCommand = new OleDbCommand(Sql, cn);
da.Fill(ds, "Score");
dataGridView1.DataSource = ds.Tables["Score"];
cn.Close();
}
google新增的写法是insert into 资料表(a,b) values ('c','d');
所以我照抄了
OleDbDataAdapter da = new OleDbDataAdapter();
DataSet ds = new DataSet();
string Sql = "INSERT INTO Score ([学号],[姓名]) VALUES('123','test')";
da.InsertCommand = new OleDbCommand(Sql, cn);
da.Fill(ds, "Score");
dataGridView1.DataSource = ds.Tables["Score"];
cn.Close();
错误讯息为"SelectCommand 属性尚未初始化。"
试过把[]修掉 也是一样 不知道是哪里错了?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.160.85.185
1F:→ denby:INSERT的写法没错 照着错误讯息往该方向找吧 05/19 23:01
GOOGLE过 好像是说资料库没连接到之类的意思
SELECT没问题 INSERT就未初始化
明明就是复制贴上的的说+_+>..
试过
OleDbConnection cn = new OleDbConnection();
cn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=DbScore.mdb";
也一并重新贴在INSERT 但是结果还是一样未初始化
2F:→ tedcat:da.fill-> 从sql取result取一个在程式暂存的table名称 05/19 23:27
3F:→ tedcat:所以你要先有一个result table才可以... 05/19 23:28
4F:→ tedcat:你不可能期望你insert资料进去後,程式就这麽聪明的知道 05/19 23:35
5F:→ tedcat:知道你要从那个表取什麽样的资料集出来吧... 05/19 23:35
@_@
意思是insert不能照抄select da.fill的方式吗?@@"
※ 编辑: relievezaoc 来自: 118.160.85.185 (05/19 23:45)
6F:→ tedcat:意思是你insert完之後要在把本来的select那段也补上去... 05/19 23:46
7F:→ tedcat:这样ds才会有score的结果集啊... 05/19 23:46
OleDbDataAdapter da = new OleDbDataAdapter();
DataSet ds = new DataSet();
string Sql = "INSERT INTO Score (学号,姓名) VALUES('123','test')";
da.InsertCommand = new OleDbCommand(Sql, cn);
>>>> string newSql = "select * from [Score]";
>>>> da.SelectCommand = new OleDbCommand(newSql , cn);
da.Fill(ds, "Score");
dataGridView1.DataSource = ds.Tables["Score"];
cn.Close();
没有错误提示了 但是也没有新增资料+__+|||
就只是个按扭 按了没有任何反应
该检查哪边呢@_@?
※ 编辑: relievezaoc 来自: 118.160.85.185 (05/20 00:01)
8F:→ tedcat:刚查了一下语法,insercommand完之後还需要执行他 05/20 00:48
9F:→ tedcat:da.InsertCommand.ExecuteNonQuery(); 05/20 00:48
10F:→ tedcat:google到这篇语法 跟你的用途应该是一样的 05/20 00:50
!!感谢!!!成功了
但需要再加一条
cn.open();
可能是语法就是这样的关系吧?
如果没有open的话
错误是:ExecuteNonQuery 必须有开启与可用的 Connection。连接目前的状态已关闭。
大概要ExecutNonQuery就是要绑个Open吧- 3 -||||
另外想问一下T大是喂了估狗什麽关键字呢@_@?
我GOOGLE InsertCommand SQL
或是 InsertCommand 语法 都没看到这个网站呢QQ
这网站棒~~继续研究怎麽新增使用者自己输入资料~~还有删除..XD~!!!
心得:sql的语法好难抄啊!!!!!!!!!!!Q册Q!!!!!!!!~~~
再次感谢t大的帮忙!!^_^
※ 编辑: relievezaoc 来自: 118.160.85.185 (05/20 20:52)
12F:→ tedcat:我就只是把你的da.insert...当成关键字 05/21 19:52
13F:→ tedcat:另外,你那个是属於vb.net/c#.net的层面,所以你打insert sql 05/21 19:53
14F:→ tedcat:insertcommand sql是不会有结果的...你应该打的是.net inse 05/21 19:53
15F:→ tedcat:.net insertcommand就会找到一堆了 05/21 19:53
哦哦..了解@__@!!
再次感谢你~~!!
※ 编辑: relievezaoc 来自: 118.160.87.109 (05/22 21:40)