在这句话中:
myCommand.ExecuteReader(CommandBehavior.CloseConnection)
Run Code Online (Sandbox Code Playgroud)
如果发生异常,它会关闭连接吗?
我需要解析一个Command.CommandText.
我不想运行查询.我只想查看命令执行时查询是否成功.
说我有; "SELECT * FROM SomeTable WHERE (1=1)"
此字符串将成功.
但,
"SELECT * FROM SomeTable WHERE (1=1"
Run Code Online (Sandbox Code Playgroud)
不会成功.
现在我的问题.我怎么会Parse这个字符串c#?
我需要以编程方式在C#中创建一个SQL Server 2008表,以便从列列表中生成表的列(每个列名是表中行的名称)
我的问题是循环列列表的命令字符串是什么,并创建记录的表:
List<string> columnsName = ["col1","col2","col3"]
Run Code Online (Sandbox Code Playgroud)
我想创建一个包含列中的列的表columnsName.但由于列表大小不恒定,我需要循环遍历列表以生成表列.
如果我有以下示例,我很难理解“删除级联”:
创建表X(id int主键,名称char(10));
创建表 Y(bid int 主键,在删除级联时辅助引用 A(id));
X 包含一行 (111, 'Mike')
Y 包含两行 (1000, 111), (2000, 111)**
如果删除表 Y 中的行 (2000,111) 会发生什么?
由于对父表的引用,该行会被删除还是允许我删除任何内容?
谢谢
我需要将天气预报(温度)插入SQL Server数据库,以便远程控制建筑物的供暖.
步骤是:
我做了3个第一步,但我坚持使用最后一个.
该阵列是从Yahoo weather的RSS feed创建的.
string[,] myarray1 = new string[5, 3];
Run Code Online (Sandbox Code Playgroud)
数据库列的名称是:Date,Templow,Temphigh
我现在正在尝试将此数组的元素插入SQL Server数据库.几个小时我一直在努力,我无法弄清楚如何做到这一点.我在这个网站上看了很多解决方案而没有成功.
我试过了:
foreach (string str2 in myarray1)
{
var mycommand = new SqlCommand("INSERT INTO RSS2 VALUES(@Date, @Templow, @Temphigh)", myConnection);
mycommand.Parameters.AddWithValue("@Date", str2);
mycommand.Parameters.AddWithValue("@Templow", str2);
mycommand.Parameters.AddWithValue("@Temphigh", str2);
mycommand.ExecuteNonQuery();
}
Run Code Online (Sandbox Code Playgroud)
和
for (k = 0; k < 5; k++)
{
SqlCommand myCommand = new SqlCommand("INSERT INTO RSS2 (Date, Templow, Temphigh)" +
"Values ('myarray1[k,0]','myarray1[k,1]','myarray1[k,2]')", myConnection);
myCommand.ExecuteNonQuery();
}
Run Code Online (Sandbox Code Playgroud)
和许多其他人......
这些解决方案都没有得到纠正.这是我在c#中的第一个代码(我习惯了Basic),所以要小心;-)
我想在C#中运行此查询
SELECT *
FROM [FirstDataBase].[dbo].[table1]
INNER JOIN [SecondDataBase].[dbo].[table2]
Run Code Online (Sandbox Code Playgroud)
我的代码是:
SqlConnection cn = new SqlConnection(myConnectionString);
SqlCommand cmd = new SqlCommand(@"SELECT * FROM [FirstDataBase].[dbo].[table1]
INNER JOIN [SecondDataBase].[dbo].[table2]");
cmd.Connection = cn; // here is my question !!!
cn.Open();
int x = (int)cmd.ExecuteScalar();
Run Code Online (Sandbox Code Playgroud)
但是我的查询需要两个连接字符串...一个用于[FirstDataBase],第二个用于[SecondDataBase] ...我怎么能这样做?如何插入两个SqlConnection或ConnectionString一个SqlCommand?或者我怎么能以其他方式做到这一点?
任何人都可以注意到以下功能可能出现的问题:
public string Login(string username, string password)
{
string result = "";
string select = "SELECT user_id FROM [user] WHERE username = @username AND password = @password";
SqlConnection conn = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand(select, conn);
cmd.Parameters.AddWithValue("username", username);
cmd.Parameters.AddWithValue("password", password);
int userID = 0;
try
{
conn.Open();
userID = (int)cmd.ExecuteScalar();
if(userID > 0)
{
result = addSession(userID);
}
}
catch(Exception ex)
{
string sDummy = ex.ToString();
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
不知道为什么行`userID =(int)cmd.ExecuteScalar(); 抛出一个例外.
谢谢
对于SQL stalwarts来说,这可能是一个非常愚蠢的问题,但我只想要一个SQL命令.
细节,
我使用的是名为R的数据分析工具,该工具使用ODBC从XLS读取数据.我现在正在尝试从XLS文件中读取数据.R中的ODBC工具接受SQL命令.
题,
有人可以给我一个SQL命令,它将从XLS文件中读取数据 - 指定表 - 指定列[按名称] - 指定行[仅由行索引指定]
谢谢 ...
我正在使用基于WinForms的C#工具,该工具具有附加的基于MDF文件的数据库.我正在尝试使用该SqlCommand.ExecuteNonQuery()方法将记录保存到此附加的MDF数据库,但记录未保存.没有错误或异常发生; 唯一的问题是记录实际上没有保存.
我Console.WriteLine在顶部显示了我正在尝试运行的查询.它的语法正确,如果我从输出窗口复制粘贴并单独运行它,它的工作原理.
我已正确定义连接字符串如下,它可以正常获取记录:
public static String connectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\TestBuildDB.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
这里我用来保存记录的功能:
public static void PerformDBWriteTransaction(string inputSQLStatement)
{
Console.WriteLine(inputSQLStatement);
DataTable returnDataTable = new DataTable();
SqlConnection sqlConnection = new SqlConnection();
sqlConnection.ConnectionString = connectionString;
SqlCommand cmd = new SqlCommand();
cmd.Connection = sqlConnection;
cmd.CommandType = CommandType.Text;
cmd.CommandText = inputSQLStatement;
cmd.Connection.Open();
try
{
cmd.ExecuteNonQuery();
}
catch (SqlException ex)
{
errorMessages.Clear();
errorMessages.Append("The following errors were found in the SQL statement:\n\n");
for (int i = 0; i < ex.Errors.Count; …Run Code Online (Sandbox Code Playgroud) 我正在尝试拦截并将所有SQL命令记录到数据库中.我也需要参数及其值.但command.Parameters没有IEnumerable.我可以去找一个for-statement但有点感觉就像一个退缩.
public override void ScalarExecuted(DbCommand command, DbCommandInterceptionContext<object> interceptionContext)
{
_stopwatch.Stop();
if (interceptionContext.Exception != null)
{
_logger.Error(interceptionContext.Exception, "Error executing command: {0}", command.CommandText);
string param = string.Empty;
if (command.Parameters.Count > 0)
{
foreach (var t in command.Parameters)
{
param += t....
}
}
Log log = new Log()
{
Date = DateTime.UtcNow,
LogLevel = LogLevel.Error,
Message = command.CommandText + "\r\n " + param.
};
}
else
_logger.TraceApi("SQL Database", "CommandInterceptor.ScalarExecuted", _stopwatch.Elapsed, "Command: {0}: ", command.CommandText); …Run Code Online (Sandbox Code Playgroud) sqlcommand ×10
c# ×6
sql ×4
.net ×3
sql-server ×2
arrays ×1
database ×1
excel ×1
exception ×1
foreign-keys ×1
inner-join ×1
interceptor ×1
logging ×1
mdf ×1
mysql ×1
parsing ×1
r ×1
t-sql ×1