可能是我做错了什么但不知道我为什么会遇到这样的问题。
我使用的#!/bin/bash
#My First Script
#Info to be configured
current_path=$(pwd)
appName="jamesApp"
jamesApp_workspace="jamesAppV2.xcworkspace"
echo "Searching for $jamesApp_workspace workspace..."
if [[ $(ls $jamesApp_workspace) ]]; then
echo "$jamesApp_workspace found in current directory."
echo "Listing all installed and connected devices..."
instruments -s devices
echo "Copy + Paste from above devices"
echo "specify name of your decice to launch $appName"
read d_device_name
echo "building workspace for $d_device_name..."
build_cmd=(xcodebuild -workspace jamesAppV2.xcworkspace -scheme jamesAppV2 -configuration Debug)
destination="'platform=iOS,name=$d_device_name'"
build_cmd+=(-destination "$destination" clean test)
echo "${build_cmd[@]}"
# Here it prints the valid command given above
"${build_cmd[@]}"
else
echo "$jamesApp_workspace workspace not found"
echo "Make sure your current path contains the $jamesApp_workspace workspace"
echo "Place this file i.e deploy.sh within the directory containing $jamesApp_workspace workspace"
fi;
占用了大约130个参数,我的代码如下所示
build_cmd=(xcodebuild -workspace jamesAppV2.xcworkspace -scheme jamesAppV2 -configuration Debug)
destination="'platform=iOS,name=$d_device_name'"
build_cmd+=(-destination "$destination" clean test)
echo "${build_cmd[@]}" #Prints valid command
"${build_cmd[@]}"
我在字符串中输出的输出就像
xcodebuild: error: option 'Destination' requires at least one parameter of the form 'key=value'
字符串不完整,不知道这背后的原因是什么,或者有任何替代方法,请建议
string.Format
是否有最大长度限制?
答案 0 :(得分:1)
这完全不是一个string.format问题,这不好笑。
请考虑自己做一些基本调试。
值(abc,efd,gr,y,t,ui,u,re,re
这不是有效的SQL。请参阅,字符串值必须处于某种类型的paranthesis(abc的'abc'instad)。
简单地说你的(顺便说一下,旧的string.format语法难以阅读 - 学会使用$“”字符串,.NET 6.0格式化的新语法)生成的SQL很糟糕你从来没有认为这是一个SQL错误
现在,对于长度问题 - 不是,没有合理的限制你会达到。有一个,但它是LONG(不确定字符串限制 - 2千兆字节RAM?)。很可能你有一个严重的表示问题(例如:字符串就在那里,你只是没有看到它,就像在调试器中那样,可能会限制输出长度)。
我会重新格式化以使用新的$“{paramname}”语法 - 一旦你点击10或20个参数,它就会更容易调试。
请注意:ToString调用所有这些参数都是多余的(无论如何都是默认调用)。
答案 1 :(得分:1)
如果您正在构建SQL查询,我强烈建议您在查询中使用参数。
以下是一个例子:
string strQuery = "Insert into TB_LN_CASES (col1, ...) VALUES (@columnOneVariable, ...)";
SqlCommand cmd = new SqlCommand(strQuery);
cmd.Parameters.AddWithValue("@columnOneVariable", "yourValue");
目前你很容易受到SQL注入攻击。
要回答有关String.Format()
限制的问题,请阅读here
答案 2 :(得分:0)
试试这个:
using (SqlConnection connection = new SqlConnection(this.connectionString))
{
connection.Open();
SqlCommand cmd = connection.CreateCommand();
cmd.CommandText = @"Insert into TB_LN_CASES (col1, col2,col3, ..)
Values (@value1, @value2, @value3, ..) ";
cmd.Parameters.Add(new SqlParameter("@value1", value1));
cmd.Parameters.Add(new SqlParameter("@value2", value2));
cmd.Parameters.Add(new SqlParameter("@value3", value3));
cmd.ExecuteNonQuery();
}
答案 3 :(得分:-2)
string.Format("@"Insert into TB_LN_CASES{0},{1},{2}", col0,col1);