高悬赏!如何实现在c#中写SQL查询2个不同的表插入2个不同的表的记录!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高悬赏!如何实现在c#中写SQL查询2个不同的表插入2个不同的表的记录!相关的知识,希望对你有一定的参考价值。

我不是很理解你的问题,你的错误应该在于你没写出来的SqlConnection部分
改动方法如下,在class
中放进以下,这是MSDN内的示范。
private
static
void
CreateCommand(string
queryString,
string
connectionString)

using
(SqlConnection
connection
=
new
SqlConnection(
connectionString))

SqlCommand
command
=
new
SqlCommand(queryString,
connection);
command.Connection.Open();
command.ExecuteNonQuery();


然后,很明显
XXX.CreateCommand(InsertSql,connectionString);
\\
把connectionString改为你的连接字串
XXX.CreateCommand(InsertSqla,connectionString);
做完要做的是就立刻关闭连接,即使是一条命令,这是数据库API的基本。微软说用
using()好,自动dispose你打开了的SqlConnection的,那就用咯。其实不写using用手动dispose()亦可。
有问题你应该看看documentation先...
第二个问题是数据库设计的问题。你为什么要分开两张表呢。一定要分的话,用键,INSERT头像档同时插入例如UserID这样的记录在第二张表,拿回来时候用JOIN即可。全套是你开发的,权限当然是你的API控制,看UserID是否匹配即可。
参考技术A 显然,你要建两个表的话,头像表必然要保存所属用户ID。
我想你的问题是:插入用户后,如何取得刚插入的用户ID吧。
在你的代码基础上改下:
string
InsertSql
=
"Insert
Into
TABLE1(name,password,passwordt,adrssed,call,[E-amil])values('"
+
TextBox1.Text
+
"','"
+
TextBox2.Text
+
"','"
+
TextBox3.Text
+
"',
'"
+
TextBox4.Text
+
"','"
+
TextBox5.Text
+
"','"
+
TextBox6.Text
+
"')"
+“select
@@IDENTITY";
SqlCommand
com
=
new
SqlCommand(InsertSql,
con);
int
userID=com.ExecuteScalar();//得到了用户的ID了。呵呵
参考技术B 来我的空间,给你一切想要的!在c#中写SQL查询2个不同的表插入2个不同的表的记录

ASP.NET MVC5 实现 SQL 查询工具

【中文标题】ASP.NET MVC5 实现 SQL 查询工具【英文标题】:ASP.NET MVC5 implements SQL query Tool 【发布时间】:2020-11-18 15:30:40 【问题描述】:

我是 ASP.NET MVC5 的新手。

我想知道如何使用 MVC5 实现以下功能:

在 MVC5 中,我设计了一个文本区域,用户可以输入选择查询然后单击按钮执行选择功能并显示结果。 但是,有多个目标数据库,这意味着不同的表具有不同的列数。(用户可能每次选择不同的表)

在开始使用 MVC5 之前,我做了一些类似的工作,例如:

1.在 Windows Form C# 中,我可以使用 DataSet 来存储来自多个表的结果,并使用 DataGridView 对象显示结果

2.在 ASP.NET WebForm 中,我可以使用带有 的 DataTable 来显示选择查询结果

现在,使用 ASP.NET MVC5,用户界面已经完成。

但是当我搜索如何使用 MVC5 显示结果时,所有参考都显示我必须在 models.cs 中声明数据类型然后调用它。但是我有很多表,每个表包含不同的列数。我卡住了。 q_q

您能给我一些提示或关键字来准确找到我需要的信息吗?

谢谢大家。祝大家一切顺利。(如果我的陈述不能理解,请告诉我)

【问题讨论】:

可以在MVC中使用实体框架。参考c-sharpcorner.com/UploadFile/abhikumarvatsa/… 这就是你需要的吧? ***.com/questions/26749429/… 你试过 ViewModel 了吗? 致鲁图亚,谢谢。我将开始阅读它。 / 致 Rymo(目前)我认为我无法实施 EF 技术来实现我的目标。 /致朱利叶斯,我会努力的。谢谢! 【参考方案1】:

昨天下午我找到了实现这个功能的方法,并且成功地做到了。 → /MVC5 + ADO.NET/

我的问题是,我一开始无法设计模型(声明数据类型),因为该工具将用于查询多个 DataTable 和具有不同列数的每个 DataTable。(这可能是由于我对 EF 的了解较少。EF 是对我来说是一项新技术)

返回主题

(这可能不对)我在 Controller 中使用了 ADO.NET,在使用 DataSet 获取数据后,然后将值传递给 DataTable。并返回带有 DataTable 的视图。

DBDataAdapter da = new DBDataAdapter(UserInputSQLCommand, conn);
                DataSet ds = new DataSet();
                DataTable dt = new DataTable();
                da.Fill(ds, "result");
                dt = ds.Tables[0];
                return View(dt);

只在结果页面(.cshtml 文件)中添加以下代码

<table border="1" cellpadding="5">
<thead>
    <tr>
        @foreach (System.Data.DataColumn col in Model.Columns)
        
            <th>@col.Caption</th>
        
    </tr>
</thead>
<tbody>
    @foreach (System.Data.DataRow row in Model.Rows)
    
        <tr>
            @foreach (var cell in row.ItemArray)
            
                <td>@cell.ToString()</td>
            
        </tr>
    
</tbody>

但我目前在同一查询页面上遇到了一些问题。所以我为结果信息创建了新页面,它确实有效。

我的新挑战是我添加的 sql 查询视图

@model MyProjectName.Models.SqlQueryView

Visual Studio 报告没有行和列的定义。

然后当我创建一个新视图并且没有使用@model 但它有效。没有显示错误信息。 我想知道行和列可能是系统定义但是由于我使用@model 那么我需要声明它吗?

【讨论】:

以上是关于高悬赏!如何实现在c#中写SQL查询2个不同的表插入2个不同的表的记录!的主要内容,如果未能解决你的问题,请参考以下文章

要提高SQL查询效率where语句条件的先后次序应如何写

要提高SQL查询效率where语句条件的先后次序应如何写

如何优化SQL语句

写个脚本使用perl或shell对比oracle表数据,急啊,高分悬赏!

悬赏跪求SQL三表查询问题

如何优化sql语句