如题 望高手解答
解决方案 »
- Request Entity Too Larger, upload error 413 ,flashupload
- repeater显示时间
- gridView中,怎么根据一列的值,决定是否显示另一列中的某些值?
- File类和FileInfo类的某些方法可以完成同样的文件操作,请问他们分别应该用到什么场合最合适呢
- 如何生成网页的导航条?
- 高手请指点 Microsoft SharePoint Portal Server 2003 的卸载问题,在线等,急急~~~
- js动态生成的表单怎么提交到数据库
- 请问一下
- asp.net下,我要单击LinkButton后,转到另外一个网页,在LinkButton_Click事件中,
- 大虾请进!
- 如何将dreamweave和vs.net配合使用?
- 我的aspx网页显示的表格列太窄,字都成竖排的了,怎么改下?让表格宽度超出屏幕也可以。
要不用.net控件,其实是都封装好了,只是不用你写而已
.net控件 在数据访问层 还是有对应的 增删改的sql语句我要求是 方法只给表名 和要修改的数据,可以告诉你是增加还是删除 或是修改
但是注意了 这个方法内 并不生成sql语句 并能完成任务,并不调用其他 自己编写的方法。
bojo我懂
现在只是纯ado.net啊
严重关注
我把代码粘出来
/// <summary>
/// 使用DataTable插入或修改表中的数据
/// </summary>
/// <param name="dt">要更新至数据库的DataTable</param>
/// <param name="dt">对应的数据库表名</param>
public void IntoDb(DataTable dt, string TableName)
{
GetCb();
cb.DataAdapter = da;
if (ConnType == 1)
{
dc.CommandText = "select top 0 * from " + TableName;
}
else if (ConnType == 0)
{
dc.CommandText = "select * from " + TableName + " limit 0";
}
da.SelectCommand = dc;
da.Update(dt);
} /// <summary>
/// 自动收集表单数据
/// </summary>
/// <param name="TableName">要更新的表名</param>
/// <param name="NoStr">要过滤掉的参数名</param>
public void AutoFormInDb(string TableName,string NoStr,StringPair[] Oth)
{
HttpRequest Request = HttpContext.Current.Request;
DataTable dt;
DataRow dr;
NoStr = "|id|submit|button|action|imageField|imageField.x|imageField.y|x|y|" + NoStr + "|";
int flag = 0;
if (Request.Params["id"] != null)
{
if (Request.Params["id"] != "")
{
//有id,属于更新操作
flag = 1;
}
}
dt = new DataTable();
if (ConnType == 0)
{
dt = Exec("select * from " + TableName + " limit 0");
}
else if (ConnType == 1)
{
dt = Exec("select top 0 * from " + TableName);
} dr = dt.NewRow();
if (flag == 1)
{
dt = new DataTable();
if (ConnType == 0)
{
dt = Exec("select * from " + TableName + " where id='" + StrCommon.UrlCheck(Request.Params["id"]) + "' limit 1");
}
else if (ConnType == 1)
{
dt = Exec("select top 1 * from " + TableName + " where id='" + StrCommon.UrlCheck(Request.Params["id"]) + "'");
}
dr = dt.Rows[0];
} #region 接收Form和QueryString集合中的参数
string pars = "";
try
{
for (int i = 0; i < Request.QueryString.Count; i++)
{
pars = pars + Request.QueryString.Keys[i].ToString() + " | ";
if (NoStr.ToLower().IndexOf("|" + Request.QueryString.Keys[i].ToString().ToLower() + "|") < 0)
{
dr[Request.QueryString.Keys[i].ToString()] = Request.QueryString[i].ToString();
}
}
pars = pars + "________";
for (int i = 0; i < Request.Form.Count; i++)
{
pars = pars + Request.Form.Keys[i].ToString() + " | ";
if (NoStr.IndexOf("|" + Request.Form.Keys[i].ToString() + "|") < 0)
{
dr[Request.Form.Keys[i].ToString()] = Request.Form[i].ToString();
}
}
}
catch(Exception e)
{
throw new Exception(pars + "收集form信息出错,可能的原因是传入的值与字段类型不符合\n" + e.Message);
}
#endregion
#region 处理需要单独设置的参数
if (Oth!=null)
{
foreach ( StringPair x in Oth )
{
dr[x.Title] = x.Info;
}
}
#endregion if (flag == 0)
{
dt.Rows.Add(dr);
} #region 调用IntoDb
//try
//{
IntoDb(dt, TableName);
//}
//catch
//{
// throw new Exception("更新数据库出错。除了以下原因外,还可能是"+TableName+"表没有设置主键。");
//}
#endregion
}
也就是说用 适配器自带的
这一点我也不大明白
它最终是将操作封装成了SQL语句,进行增删改查,只能说这个过程你没看到,或者说你不了解
一个很简单的做法,使用SQL追踪,你看是否有SQL语句
例
MSSQL mysql=new MSSQL.Insert(表名,值);
MSSQL mysql2=new MSSQL.Insert(表名,值,条件);
只是给LZ一个思路。