标签: sqlcommand

添加SqlCommand参数时应该何时使用"SqlDbType"和"size"?

有一个相关的问题:

将参数传递给SQLCommand的最佳方法是什么?

但我想知道差异是什么,以及不同方式是否存在任何问题.

我通常使用这样的结构:

using (SqlConnection conn = new SqlConnection(connectionString))
using (SqlCommand cmd = new SqlCommand(SQL, conn))
{
     cmd.CommandType = CommandType.Text;
     cmd.CommandTimeout = Settings.Default.reportTimeout;
     cmd.Parameters.Add("type", SqlDbType.VarChar, 4).Value = type;

     cmd.Connection.Open();

     using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
     {
         adapter.Fill(ds);
     }
      //use data                    
}
Run Code Online (Sandbox Code Playgroud)

现在有几种方法可以添加cmd参数,我想知道哪个是最好的:

cmd.Parameters.Add("@Name", SqlDbType.VarChar, 20).Value = "Bob";
cmd.Parameters.Add("@Name", SqlDbType.VarChar).Value = "Bob";
cmd.Parameters.Add("@Name").Value = "Bob";
cmd.Parameters.AddWithValue("@Name", "Bob");
Run Code Online (Sandbox Code Playgroud)

在我假设的变量传递中具有字段的长度是不可取的,因为它是可以在数据库中稍后更改的魔术值.它是否正确?它是否会导致以这种方式(性能或其他)传递varchar的任何问题,我假设它默认为varchar(max)或数据库等效.我很高兴这会奏效.

更关心我的部分是如果我使用上面列出的第三或第四个选项,则丢失SqlDbType枚举我根本不提供类型.有没有这种情况不起作用的情况我可以想象varchar被错误地转换为char或者反之亦然的问题,或者可能是带有小数的问题....

就数据库而言,我认为字段类型的变化远不如长度,因此值得保留?

.net c# ado.net sqlcommand

42
推荐指数
2
解决办法
6万
查看次数

将带参数的SqlCommand转换为DataTable

我正在调整其他人编写的一些代码,并且需要为了时间而返回DataTable.

我有这样的代码:

using (SqlCommand command = new SqlCommand(query, conn))
{
      //add parameters and their values

      using (SqlDataReader dr = command.ExecuteReader())
      {
          return dr;
      }
Run Code Online (Sandbox Code Playgroud)

但是返回数据表的最佳方法是什么?

.net c# datatable sqlcommand .net-3.5

42
推荐指数
2
解决办法
5万
查看次数

如何清除Windows中的mysql屏幕控制台?

标题是我的问题.我用Google搜索并尝试类似的东西

mysql> !\ clear
mysql> !\ cls
mysql> system cls
mysql> system clear 

blah blah ...
Run Code Online (Sandbox Code Playgroud)

但它们都不起作用.有人告诉我如何清除屏幕,就像cls窗口中的命令一样

mysql windows command-line sqlcommand

38
推荐指数
7
解决办法
13万
查看次数

如何在单个SQL连接中运行多个SQL命令?

我正在创建一个项目,我需要在单个sql连接中运行2-3个sql命令.这是我写的代码:

SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\project.mdf;Integrated Security=True");
con.Open();
SqlCommand cmd = new SqlCommand("select *  from " + mytags.Text + " ", con);
SqlDataReader rd = cmd.ExecuteReader();
if (rd.Read())
{
    con.Close();
    con.Open();
    SqlCommand cmd1 = new SqlCommand("insert into " + mytags.Text + " values ('fname.lname@gmail.com','" + TextBox3.Text + "','" + TextBox4.Text + "','" + TextBox5.Text + "','"+mytags.Text+"')", con);
    cmd1.ExecuteNonQuery();
    label.Visible = true;
    label.Text = "Date read and inserted";
}
else
{
    con.Close();
    con.Open();
    SqlCommand cmd2 = new SqlCommand("create table " …
Run Code Online (Sandbox Code Playgroud)

c# sql-server ado.net sqlcommand sqlconnection

38
推荐指数
7
解决办法
16万
查看次数

SqlCommand参数Add与AddWithValue

我应该什么时候使用Parameters. Add/AddWithValue?在下面的MSDN示例中,他们使用Parameters.Addfor intParameters.AddWithValueforstring

command.Parameters.Add("@ID", SqlDbType.Int);
command.Parameters["@ID"].Value = customerID;

command.Parameters.AddWithValue("@demographics", demoXml);
Run Code Online (Sandbox Code Playgroud)

什么是最好用的 datetime

c# parameters sqlcommand

27
推荐指数
1
解决办法
8万
查看次数

如果关联的SqlConnection将被处理,是否需要SqlCommand.Dispose()?

我通常使用这样的代码:

using (var connection = new SqlConnection(ConfigurationManager.ConnectionStrings["MyConn"].ConnectionString))
{
   var command = connection.CreateCommand();
   command.CommandText = "...";
   connection.Open();
   command.ExecuteNonQuery();
}
Run Code Online (Sandbox Code Playgroud)

我会command自动处理吗?或者不是,我必须把它包装成using块?是否需要处理SqlCommand

c# ado.net dispose sqlcommand sqlconnection

26
推荐指数
4
解决办法
3万
查看次数

如何在没有事务的情况下初始化的SqlCommand/SqlConnection上设置隔离级别

以下方法应该在打开的连接上进行脏读.没有交易.我在哪里设置IsolationLevel?

public string DoDirtyRead(string storedProcName, SqlConnection connection)
{
    using (SqlCommand command = new SqlCommand(storedProcName, connection))
    {
        command.CommandType = CommandType.StoredProcedure;
        // HOW TO SET IsolationLevel to READ_UNCOMMITTED here?
        command.ExecuteNonQuery();
    }
}
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sqlcommand isolation-level

23
推荐指数
4
解决办法
2万
查看次数

SqlCommand对象,CommandTimeout的时长是多少?

在使用SqlCommand对象时,如何确定使用超时的时间长度?

在我正在处理的部分代码上(由其他人编写)我有:

cmd.CommandTimeout = 60;
Run Code Online (Sandbox Code Playgroud)

我觉得这很短暂.但是,我在论坛上看到一些人谈论将它设置为30000,这似乎太长了.

我怎么知道什么是我的应用程序的最佳选择?

c# ado.net sqlcommand command-timeout

23
推荐指数
3
解决办法
4万
查看次数

MySqlCommand Command.Parameters.Add已过时

我在visual studio 2010中制作了一个C#windows Form Application.

该应用程序连接到mysql数据库,我想在其中插入数据.

我现在有这部分代码:

MySqlConnection connection;
string cs = @"server=server ip;userid=username;password=userpass;database=databse";
connection = new MySqlConnection(cs);
connection.Open();

MySqlCommand command = new MySqlCommand();
string SQL = "INSERT INTO `twMCUserDB` (`mc_userName`, `mc_userPass`, `tw_userName`, `tw_userPass`) VALUES ('@mcUserName', '@mcUserPass', '@twUserName', '@twUserPass')";
command.CommandText = SQL;
command.Parameters.Add("@mcUserName", mcUserNameNew);
command.Parameters.Add("@mcUserPass", mcUserPassNew);
command.Parameters.Add("@twUserName", twUserNameNew);
command.Parameters.Add("@twUserPass", twUserPassNew);
command.Connection = connection;
command.ExecuteNonQuery();
connection.Close();
Run Code Online (Sandbox Code Playgroud)

连接很好.这样可行.

在这里强调,我现在的方式是进行查询的保存方式.这还不错吗?

而现在到了真正的问题.使用上面的代码,我在visual studio中收到以下警告:

'MySql.Data.MySqlClient.MySqlParameterCollection.Add(string, object)' is obsolete: '"Add(String parameterName, Object value) has been deprecated.  Use AddWithValue(String parameterName, Object value)"'
Run Code Online (Sandbox Code Playgroud)

该警告适用于每个parameters.add

它甚至不起作用,因为插入的值是@mcUserName,@ mcUserPass等等,而不是变量mcUserNameNew等所持有的值...... …

c# mysql parameters sqlcommand deprecated

22
推荐指数
1
解决办法
5万
查看次数

在sql server中保存字节数组

要寻找拯救,需要使用字节数组密码在此使用的方法

那么我应该在sql server中使用哪种数据类型来保存字节数组?以及如何使用SqlCommand传递和检索字节数组?

sql-server sqlcommand bytearray

20
推荐指数
2
解决办法
5万
查看次数