我写的winform权限应该没问题
代码==============================
oleDbCmd.CommandText = "update [周报表$C7:E7] set F2='333' ";
oleDbCmd.CommandTimeout = 15;
if(oleDbConn.State == ConnectionState.Closed)
{
oleDbConn.Open();
}
try
{
int i = oleDbCmd.ExecuteNonQuery();
MessageBox.Show(i.ToString());
}
catch (Exception ee)
{
MessageBox.Show(ee.ToString());
}
出错提示 操作必须使用一个可更新的查询
谢谢!!
代码==============================
oleDbCmd.CommandText = "update [周报表$C7:E7] set F2='333' ";
oleDbCmd.CommandTimeout = 15;
if(oleDbConn.State == ConnectionState.Closed)
{
oleDbConn.Open();
}
try
{
int i = oleDbCmd.ExecuteNonQuery();
MessageBox.Show(i.ToString());
}
catch (Exception ee)
{
MessageBox.Show(ee.ToString());
}
出错提示 操作必须使用一个可更新的查询
谢谢!!
range(A1,E10) 是指第一行第一列到第五列第十行的区域
update xxx set F1=333 WHERE...如果是第二行 那么where如何指定是第2行?
这些功能只能在excel(添加引用)中实现,OWC编程可以实现一些功能,但是对于格式之类的进行处理却功能有限,可能微软的还没有做完善。
具体的用法,你看这里吧,介绍了一些基本的知识,对于简单的需求是足够了:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odc_vsto2003_ta/html/odc_vstexlchrt.asp
开始写程序后又出现“缺少参数 需要...”
///....................
DataTable dt = new DataTable();
adapter.Fill(dt);
//开始写数据到excel
string strConn = @"Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq="+Environment.CurrentDirectory+@"\template.xls;ReadOnly=0;";
System.Data.Odbc.OdbcConnection Conn = new OdbcConnection(strConn);
StringBuilder sbSql = new StringBuilder();
sbSql.Append("UPDATE [周报表$]");
sbSql.Append(" SET F1=@F1");
for(int i = 0; i<dt.Columns.Count;i++)
{
sbSql.Append(" ,F");
sbSql.Append((i+2).ToString());
sbSql.Append("=");
sbSql.Append("@F");
sbSql.Append((i+2).ToString());
}
sbSql.Append(" ,F38=@F38 ");
sbSql.Append(" WHERE F39=@F39");
txt.Text = sbSql.ToString();
OdbcCommand Cmd = new OdbcCommand();
Cmd.Connection = Conn;
Cmd.CommandType = CommandType.Text;
Cmd.CommandText = sbSql.ToString();
MessageBox.Show(sbSql.ToString());
Cmd.Parameters.Add("@F1",dtEnd.ToShortDateString());
DataRow dr = dt.Rows[0];
for(int i = 0; i<dt.Columns.Count;i++)
{
Cmd.Parameters.Add("@F"+(i+2).ToString(),(Convert.IsDBNull(dr[i]))?0:dr[i]); }
Cmd.Parameters.Add("F38"," ");
Cmd.Parameters.Add("F39","AAA");
set F2='333' // 可能是F2不在F3:G3范围内吧?
当执行到 UPDATE [周报表$] SET F22='37' WHERE F39='长 庆'
的时候出现“参数不足,期待是1”
其他都执行成功了
请问什么原因 谢谢改成 UPDATE[周报表$] SET F22=37 WHERE F39='长 庆'
另外 更新excel中的时间字段如何更新
update...set F1='2004-4'...
update...set F1=2004-4...
都提示参数不足
由此可知:搂主的EXCEL第一行要么有内容,要么内容为空但HDR=YES
好像是
update...set F1=#2004-4-01#...
2:可正常使用select Insert這兩條命令.但update好象從沒有成功過,可能是無法使用update命令吧
3:建議導出到excel.應先建立excel模板,在模板中增加excel命名,再進行數據的導出會方便很多,而且更便於定制外觀
4:更多的技巧應該問問公司的文員,她們的excel比我用的好
具体方法在
http://www.cnblogs.com/huobazi/archive/2004/04/27/7771.aspx
但是对于用Ado操作的时候的问题 至今仍然困惑
谢谢斑竹置顶
谢谢大家讨论
希望有好的办法.
:)