将视图中的信息插入到另一个表中,无需用户输入
本文关键字:用户 输入 视图 信息 插入 另一个 | 更新日期: 2023-09-27 18:02:57
我试图创建一个web服务,与C#
和Visual Studio 2010
,这将插入值形成一个视图表到另一个表使用SQL
查询。在过去,我们已经使用了这种类型的服务,但是我们要求用户输入他们想要更新的值,但是对于我使用的查询,不需要用户输入,因为只有当其中一个字段值为NULL
时才会插入值。
下面是我一直试图使用的代码,我改编了我们以前使用的代码,但在这里我仍然期待用户输入。我如何更新我的代码,不期望输入。我知道我可以从MySQL
运行这个查询,但我希望能够在我们的网站上创建一个按钮,让其他人可以做到这一点。下面是运行查询的代码:
public void AddUsers(string json)
{
GetDbInstance();
var sql = "insert into dbo.ASPECTS_users_activity " +
"(user_id, usr_address, usr_phone, usr_email, usr_website, usr_photo ) " +
"select @v.customer_id, @usr_address, @usr_phone, @usr_email, @usr_website, @usr_photo " +
"from dbo.ASPECTS_current_users_vw v where usr_photo is NULL;";
var usrInformation = JsonConvert.DeserializeObject<UpdateExhibitors>(json);
Console.WriteLine(usrInformation);
var conn = db.Connection();
try
{
SqlCommand command = new SqlCommand(sql, conn);
command.Parameters.AddWithValue("@v.customer_id", usrInformation.master_customer_id);
command.Parameters.AddWithValue("@usr_address", "123 XYZ Post, Columbus, IN");
command.Parameters.AddWithValue("@usr_phone", "555-555-5555");
command.Parameters.AddWithValue("@usr_email", "test@sample.com");
command.Parameters.AddWithValue("@usr_website", "http://www.sample.com");
command.Parameters.AddWithValue("@usr_photo", "");
command.ExecuteNonQuery();
command.Dispose();
command = null;
}
catch (Exception e)
{
throw new Exception(e.ToString(), e);
}
finally
{
conn.Close();
}
}
这是模型
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Customer_Insert.Models {
public class AddUsers {
public string customer_id { get; set; }
public string usr_address { get; set; }
public string usr_phone { get; set; }
public string usr_email { get; set; }
public string usr_website { get; set; }
public string usr_photo { get; set; }
}
}
这样您就知道将从视图中填充的唯一字段将是customer_id
字段,所有其他字段将具有默认值,这些值将在另一个点更新。这里没有多少人知道SQL
,所以创建这个选项可以在我不在的时候提供一个选项。
既然你"可以从MySQL运行这个查询",我会将该查询保存为数据库中的存储过程。然后,在代码中既不需要SQL也不需要参数。
SqlCommand command = new SqlCommand("yourStoredProcedureName", conn);
command.ExecuteNonQuery();
...