不写sql语句 只给表明和内容 可以实现 插入 更新 删除操作吗?

lianglei9810 2009-06-02 03:18:33
如题 望高手解答
...全文
516 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
itrefer 2009-06-04
  • 打赏
  • 举报
回复
不知道LZ的意思是不是在使用的时候不写sql,如果是这样自己写个强些的辅助类,使用的时候直接可以使用达到你使用时候不写sql语句的目的。

MSSQL mysql=new MSSQL.Insert(表名,值);
MSSQL mysql2=new MSSQL.Insert(表名,值,条件);

只是给LZ一个思路。
yumenlong5149 2009-06-04
  • 打赏
  • 举报
回复
你说的手动操作?不用写代码?那就用sqlDataSource控件了,简单上手,选定数据源后和GridView绑定,不用写代码就能实现更新编辑删除功能。
onlylittle 2009-06-03
  • 打赏
  • 举报
回复
yun
zyug 2009-06-03
  • 打赏
  • 举报
回复
呵呵,无论是Linq或是 SQLDATASOURCE 或是hibernate
它最终是将操作封装成了SQL语句,进行增删改查,只能说这个过程你没看到,或者说你不了解
一个很简单的做法,使用SQL追踪,你看是否有SQL语句
huaijiejie 2009-06-03
  • 打赏
  • 举报
回复
没有SQL语句要如何操作数据库啊
khal 2009-06-03
  • 打赏
  • 举报
回复
这样的需求有必要吗?
wpuuuu 2009-06-03
  • 打赏
  • 举报
回复
到最后实际上还是有语句啊 怎么可能不用sql呢 你的数据全用XML存吧 就不用语句了
wjn161 2009-06-02
  • 打赏
  • 举报
回复
关键词:sqlcommandbuilder
lianglei9810 2009-06-02
  • 打赏
  • 举报
回复
要说明的是 da.UpdateCommand 和 da.InsertCommand 都没有预先设定
也就是说用 适配器自带的
这一点我也不大明白
lianglei9810 2009-06-02
  • 打赏
  • 举报
回复
确实可以 结贴了
我把代码粘出来
/// <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
}
Ricercar 2009-06-02
  • 打赏
  • 举报
回复
用.net写托管的存储过程
jiangshun 2009-06-02
  • 打赏
  • 举报
回复
既然要实现 插入 更新 删除操作

目标对象是数据库,不写SQL语句能行吗?


严重关注

clever_yang 2009-06-02
  • 打赏
  • 举报
回复
就算是SQLDATASOURCE 也要写SQL 语句的,它是写在页面的。。。
happy_gaoxing 2009-06-02
  • 打赏
  • 举报
回复
sqldatasouce
lvsh870228 2009-06-02
  • 打赏
  • 举报
回复
hibernate面向对象,它就是不写sql
peng_weida 2009-06-02
  • 打赏
  • 举报
回复
up
lianglei9810 2009-06-02
  • 打赏
  • 举报
回复
...pojo
lianglei9810 2009-06-02
  • 打赏
  • 举报
回复
。。。啥orm 还 hibernate呢
bojo我懂
现在只是纯ado.net啊
lianglei9810 2009-06-02
  • 打赏
  • 举报
回复
linq貌似是对结果进行查询
.net控件 在数据访问层 还是有对应的 增删改的sql语句

我要求是 方法只给表名 和要修改的数据,可以告诉你是增加还是删除 或是修改
但是注意了 这个方法内 并不生成sql语句 并能完成任务,并不调用其他 自己编写的方法。
xuefly09 2009-06-02
  • 打赏
  • 举报
回复
orm
加载更多回复(6)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧