我正在尝试使用C#
和Visual Studio 2010
创建一个Web服务,它将使用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
因此,如果我不在身边,创建此选项将提供一个选项。
答案 0 :(得分:1)
由于您“只能从MySQL运行此查询”,我会将该查询保存为数据库中的存储过程。那么你的代码中既不需要SQL也不需要参数。
SqlCommand command = new SqlCommand("yourStoredProcedureName", conn);
command.ExecuteNonQuery();
...