读书人

c#操作数据库有关问题(简单的 更新数

发布时间: 2013-07-11 15:38:46 作者: rapoo

c#操作数据库问题(简单的 更新数据库出错)


class Program
{
static void Main(string[] args)
{
SqlConnection cnn = new SqlConnection("Data Source=(local);Initial Catalog=liyang;uid=sa;pwd=123456;");
string sqlstr = "select * from [liyang].[dbo].[student] ";
try
{
cnn.Open();
SqlDataAdapter sda = new SqlDataAdapter(sqlstr, cnn);
DataSet ds = new DataSet();
sda.Fill(ds);//将执行结果填充到Dataset中,会隐藏打开SqlConnection并执行SQL等操作
Console.WriteLine("姓名\t\t班级");
int cnt = ds.Tables[0].Rows.Count;//读取行数
for (int ix = 0; ix != cnt; ++ix)
Console.WriteLine("{0}\t\t{1}", ds.Tables[0].Rows[ix].ItemArray[1],//第一个表里第几行第2列
ds.Tables[0].Rows[ix].ItemArray[2]);//循环读取数据,注意索引范围

DataTable mytable = ds.Tables[0];
foreach (DataRow myRow in mytable.Rows)
{
myRow["姓名"] =myRow["姓名"]+ "1";
}
SqlCommandBuilder mysqlCommanBuilder = new SqlCommandBuilder(sda);
sda.Update(ds);//更新数据库 操作


for (int ix1 = 0; ix1 != cnt; ++ix1)
Console.WriteLine("{0}\t\t{1}", ds.Tables[0].Rows[ix1].ItemArray[1],//第一个表里第几行第2列
ds.Tables[0].Rows[ix1].ItemArray[2]);//循环读取数据,注意索引范围
}
}


运行到sda.Update(ds); 这里 提示:对于不返回任何键列信息的selectcommand,不支持updatacomman的动态sql语句
求高手指点。。谢谢 C# 数据库
[解决办法]
student表里id设置主键 看看
[解决办法]
是不是表中有主的原因?看下表里有主,有的加一
[解决办法]
string sqlstr = "select * from [liyang].[dbo].[student] ";意思就说你这个没有返回任何主键的信息不给动态更新,你看下你自己的数据库吧!
[解决办法]
引用:
string sqlstr = "select * from [liyang].[dbo].[student] ";意思就说你这个没有返回任何主键的信息不给动态更新,你看下你自己的数据库吧!

+1

读书人网 >C#

热点推荐